我只想验证_presence_of:group如果group_id不是nil

时间:2014-03-26 12:59:45

标签: ruby-on-rails

class Category < ActiveRecord::Base
  belongs_to :user
  belongs_to :group

  validates :name, presence: true
  validates :user_id, presence: true
  validates_presence_of :group
.
.
.

如果group_id不是nil,我只想验证组的存在。这可能吗?或者我是否需要编写新的验证方法?

2 个答案:

答案 0 :(得分:0)

您可以使用Proc来有条件地执行验证。有关详情,请参阅Rails Guide

validates_presence_of :group, unless: Proc.new { |category| category.group_id.nil? } 

答案 1 :(得分:0)

您可以使用内联if

validates :group, :presence: true, if: "group_id.present?"