专门验证一个父ID的存在

时间:2015-12-30 15:28:16

标签: ruby-on-rails validation activerecord error-handling

我有一个Board模型,可能属于ArtistAlbumBoardCategory。我基本上想要验证,如果存在三个父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

2 个答案:

答案 0 :(得分:0)

试试这个:

UserInterfaceState.xcuserstate

答案 1 :(得分:0)

根据您的描述,我建议您修改模型结构。 polymorphic association是你真正需要的。这是教程:

polymorphic association