![](/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.