проверка пользовательского сообщения для rails 3
Rails ввел новый способ проверки атрибутов внутри модели. Когда я использую
validates :title, :presence => true
это работает, но когда я пытаюсь добавить пользовательский
validates :title, :presence => true,:message => "Story title is required"
генерируется ошибка
Unknown validator: 'message'
4 ответа:
на самом деле, я сделал это в лучшую сторону. Если вы хотите удалить заголовок поля из сообщения, Вы должны использовать его в своей _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
это даст вам сообщение об ошибке, заменив название атрибута модели на историю.