2013-03-13 63 views
2

在我Post模型中,我有一個屬性夫婦驗證的link跳過使用有效的特定驗證?在ActiveRecord的

validates :link, url: true, uniqueness: true 

現在,在我的控制,我想呼籲:

@post = Post.new(link: "google.com") 
@post.valid? 

我想檢查鏈接格式正確,但跳過唯一性測試。我應該怎麼做?

回答

2

您可以設置驗證的: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 
+0

謝謝馬特。這工作。 – AdamNYC 2013-03-13 18:21:24

2

您可以檢查是否有用於該領域中的錯誤:

@post.errors[:link].blank? 
+0

由於米蘭。這是一個有趣的選項,但理想情況下,我不喜歡Rails通過錯誤。 – AdamNYC 2013-03-13 17:20:34

相關問題