在我Post
模型中,我有一個屬性夫婦驗證的link
跳過使用有效的特定驗證?在ActiveRecord的
validates :link, url: true, uniqueness: true
現在,在我的控制,我想呼籲:
@post = Post.new(link: "google.com")
@post.valid?
我想檢查鏈接格式正確,但跳過唯一性測試。我應該怎麼做?
在我Post
模型中,我有一個屬性夫婦驗證的link
跳過使用有效的特定驗證?在ActiveRecord的
validates :link, url: true, uniqueness: true
現在,在我的控制,我想呼籲:
@post = Post.new(link: "google.com")
@post.valid?
我想檢查鏈接格式正確,但跳過唯一性測試。我應該怎麼做?
您可以設置驗證的:if => :method_name
參數,這將導致該驗證只有當在該方法的條件爲真運行。把你的條件是用那種方法。
實施例:
validates :link, :uniqueness => true, :if => :validate_link_uniqueness? #Will only run if validate_link_uniqueness? returns true
validates :link, :url => true # Will always run
def validate_link_uniqueness?
!new_record? # Insert the conditions that return true if uniqueness should be validated
end
您可以檢查是否有用於該領域中的錯誤:
@post.errors[:link].blank?
由於米蘭。這是一個有趣的選項,但理想情況下,我不喜歡Rails通過錯誤。 – AdamNYC 2013-03-13 17:20:34
謝謝馬特。這工作。 – AdamNYC 2013-03-13 18:21:24