簡體   English   中英

為什么Rails不接受嵌套哈希選項之外的:message符號?

[英]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!" }

長度驗證在以下方面進行:

validates_length_of:title,:minimum => 10,:message =>“幫助!”

活動記錄驗證

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM