我正在创建一个投票系统。我希望所有选项都是唯一的,但只能在各自的Poll
内。我使用proc
来验证它们不是空白的:
class Poll < ActiveRecord::Base
has_many :options
accepts_nested_attributes_for :options, reject_if: proc { |attributes| attributes['option'].blank? }
end
但我不确定如何验证它们的独特性。我尝试在Option
模型中执行此操作,但它并未拒绝通过Poll
表单f.fields_for
创建的重复选项:
class Option < ActiveRecord::Base
belongs_to :poll
validates_uniqueness_of :option, scope: :poll_id
end
是否可以使用proc
?
答案 0 :(得分:0)
对validates_uniqueness_of :title, :other, scope: :poll_id
答案 1 :(得分:0)
您可以将任何条件传递给该proc。因此,您可以对该列进行查询,并查看是否返回任何结果,如果是,则拒绝。