Rails已经引入了新的方法来验证模型中的属性。 当我使用验证轨道3的自定义消息
validates :title, :presence => true
它的工作原理,但是当我尝试添加自定义消息
validates :title, :presence => true,:message => "Story title is required"
产生一个错误
Unknown validator: 'message'
Rails已经引入了新的方法来验证模型中的属性。 当我使用验证轨道3的自定义消息
validates :title, :presence => true
它的工作原理,但是当我尝试添加自定义消息
validates :title, :presence => true,:message => "Story title is required"
产生一个错误
Unknown validator: 'message'
试试这个
validates :title, presence: { message: "Story title is required" }
其实,我做到了以更好的方式。如果你想从你应该在你的_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>
Htmk?为什么,我从来没有 – 2015-11-09 14:36:09
您可以使用rails 3的HUMANIZED_ATTRIBUTES。 例如,在上述情况下,它会像:
HUMANIZED_ATTRIBUTES = {
:title => "story"
}
def self.human_attribute_name(attr, options={})
HUMANIZED_ATTRIBUTES[attr.to_sym] || super
end
它会给你的错误信息,用故事替代模型属性称号。
为用条件的布尔自定义消息可能是:
validates :foo, inclusion: { in: [true, false], message: "cannot be blank" }, if: :bar?
如何去除:标题从上述错误信息?以上显示为“标题故事标题是必需的”。我想要“故事标题是必需的。”谢谢。 – Mayumi 2011-10-06 06:37:37
这个答案中'=> true'去了哪里?没有必要吗? – dukedave 2012-02-23 23:15:50
@dukedave奇怪的是,这是没有必要的。你可以将任何“真理”传递给“存在”。 – harm 2013-04-12 14:06:34