私のPost
モデルでは、属性に対していくつかの検証がありますlink
validates :link, url: true, uniqueness: true
今、私のコントローラで、私は呼び出したいと思います:
@post = Post.new(link: "google.com")
@post.valid?
リンクの形式が正しいかどうかを確認したいのですが、一意性テストはスキップします。どうすればいいですか?
私のPost
モデルでは、属性に対していくつかの検証がありますlink
validates :link, url: true, uniqueness: true
今、私のコントローラで、私は呼び出したいと思います:
@post = Post.new(link: "google.com")
@post.valid?
リンクの形式が正しいかどうかを確認したいのですが、一意性テストはスキップします。どうすればいいですか?
:if => :method_name
メソッドの条件が true の場合にのみ検証を実行する引数を検証に設定できます。あなたの条件が何であれ、そのメソッドに入れてください。
例:
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?