在我的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?
我想检查链接是否格式正确,但要跳过唯一性测试。我该怎么做?
您可以检查该字段是否有错误:
@post.errors[:link].blank?
您可以: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