У меня есть модель Board
, которая имеет возможность принадлежать Artist
, Album
или BoardCategory
. Я в основном хочу проверить, что, если присутствует один из трех родительских идентификаторов, остальные оставшиеся два не могут быть добавлены на плату. Будучи тем, что я проверяю несколько атрибутов, мне было интересно, как настроить сообщение 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