проверка пользовательского сообщения для rails 3


Rails ввел новый способ проверки атрибутов внутри модели. Когда я использую

validates :title, :presence => true

это работает, но когда я пытаюсь добавить пользовательский

validates :title, :presence => true,:message => "Story title is required"

генерируется ошибка

Unknown validator: 'message'
4 90

4 ответа:

попробуй такое

validates :title, presence: { message: "Story title is required" }

на самом деле, я сделал это в лучшую сторону. Если вы хотите удалить заголовок поля из сообщения, Вы должны использовать его в своей _form.НТМК.Эрб вид:

Как вы можете видеть внутри этой вид:

<ul>
  <% @article.errors.full_messages.each do |msg| %>
  <li><%= msg %></li>
  <% end %>
</ul>

заменить на:

<ul>
  <% @article.errors.each_with_index do |msg, i| %>
  <li><%= msg[1] %></li>
  <% end %>
</ul>

пользовательское сообщение для логического значения с условными обозначениями может быть:

validates :foo,  inclusion: { in: [true, false], message: "cannot be blank" }, if: :bar?

вы можете использовать HUMANIZED_ATTRIBUTES rails 3 . Например, в приведенном выше случае, это будет так :

HUMANIZED_ATTRIBUTES = {
:title => "story"
}
 def self.human_attribute_name(attr, options={})
    HUMANIZED_ATTRIBUTES[attr.to_sym] || super
end

это даст вам сообщение об ошибке, заменив название атрибута модели на историю.