我有一个Board
模型,可能属于Artist
,Album
或BoardCategory
。我基本上想要验证,如果存在三个父ID中的一个,则剩余的两个不能添加到板上。由于我在多个属性上进行验证,我想知道如何设置error.add
消息。更重要的是,如何在不创建如此冗长的||
条件语句的情况下实现此目的?
class Board << ActiveRecord::Base
belongs_to :artist
belongs_to :album
belongs_to :board_category
validate :board_parent
private
def board_parent
if artist_id.present? || album_id.present? || board_category_id.present?
errors.add(..., "already belongs to an artist or album"
end
end
答案 0 :(得分:0)
试试这个:
UserInterfaceState.xcuserstate
答案 1 :(得分:0)
根据您的描述,我建议您修改模型结构。 polymorphic association
是你真正需要的。这是教程: