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

94

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

validates :title, :presence => true

он работает, но когда я пытаюсь добавить собственное сообщение

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

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

Unknown validator: 'message'
Прабеш Шреста
источник

Ответы:

196

Попробуй это

validates :title, presence: { message: "Story title is required" }
Шив
источник
19
Как удалить заголовок: из сообщения об ошибке выше? Выше отображается как «Требуется заголовок статьи». Я хочу "Требуется название истории". Спасибо.
датаузер 06
5
Куда => trueделся этот ответ? Разве это не нужно?
davetapley
2
@dukedave как ни странно не нужен. Вы можете передать что-нибудь «правдивое» presence.
вред
1
@NotDan, ссылка не работает.
stevenspiel
2
@Mayumi - Вы можете удалить имя атрибута из сообщения, написав ручную проверку и добавив ошибку :base, например,errors.add(:base, "Story title is required)
Марко Принс,
18

Собственно, я сделал это лучше. Если вы хотите удалить заголовок поля из сообщения, вы должны использовать его в своем представлении _form.htmk.erb:

Как вы можете видеть внутри этого представления:

<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>
Mateusgf
источник
Htmk? Почему, я бы НИКОГДА
Марко Принс
1

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

validates :foo,  inclusion: { in: [true, false], message: "cannot be blank" }, if: :bar?
Stevenspiel
источник
0

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

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

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

Шямкхадка
источник