![](/img/trans.png)
[英]Why does the “no implicit conversion of Symbol into Hash” error occur in Trailblazer?
[英]why does rails not accept the :message symbol outside of a nested hash option?
这是我的代码。 第一个注释行工作正常; 第二个没有。 这里的文档是粗略的-在“ validates”方法下没有提及:message选项,但是“ validates_format_of”说:message很好。 (http://apidock.com/rails/ActiveModel/Validations/ClassMethods/validates)这里发生了什么?
class Product < ActiveRecord::Base
validates :title, :description, :image_url, :presence => true
#validates :title, :length => {:minimum => 10, :message => "help!"}
#validates :title, :length => {:minimum => 10}, :message => "help!"
validates :price, :numericality => {:greater_than_or_equal_to => 0.01}
validates :image_url, :format => {
:with => %r{\.(gif|jpg|png)$}i,
:message => 'must be a URL for GIF, JPG or PNG image.'
}
end
在第一行注释中,消息值是:length参数的一个选项,它似乎被忽略了。 测试尝试
validates :title, :length => {:minimum => 10, :foobar => "help!"}
并且您会发现它可以正常工作而不会产生错误。
validates只是默认验证器的快捷方式。 您似乎想要设置validates_format_of:message选项,所以我认为您需要以下内容:
validates :title, length => {:minimum => 10}, :format => { :message => "help!" }
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.