validation导轨的自定义消息3
Rails已经引入了新的方法来validation模型中的属性。 当我使用
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>
将其replace为:
<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?
你可以使用rails 3的HUMANIZED_ATTRIBUTES。 例如,在上面的情况下,它会是这样的:
HUMANIZED_ATTRIBUTES = { :title => "story" } def self.human_attribute_name(attr, options={}) HUMANIZED_ATTRIBUTES[attr.to_sym] || super end
它会给你错误信息,用故事取代模型属性标题。
- PHPvalidation/正则expression式的URL
- Html.ValidationSummary(false,“message”)总是显示,即使在页面加载
- 在WPFvalidation中ValidatesOnNotifyDataErrors和ValidatesOnDataErrors和NotifyOnValidationError有什么区别?
- 可以在html5中validationinput = file的大小和types
- 使用iPhone UIWebView的Asp.Net Forms身份validation
- MVC自定义validation:比较两个date
- 如何使用客户端JavaScript保持API密钥的秘密?
- Node.JS中的基本HTTP身份validation?
- 如何用Devise“软删除”用户