validates uniqueness scope allow_blank/allow_nil -> validation error

43 views
Skip to first unread message

Lephyrius

unread,
Apr 3, 2013, 5:56:48 AM4/3/13
to Ruby on Rails: Talk
I have this in a model:
class GenreBadge < ActiveRecord::Base

belongs_to :game, counter_cache: :genre_badges_count, touch: true
belongs_to :genre
validates :game_id, uniqueness: {scope: :genre_id}, allow_blank:
true

end

When I get one existing genre badge
genre_badge = game.genre_badges.first
genre_badge.game_id = nil
genre_badge.save!

It creates an validation exception:
"ActiveRecord::RecordInvalid: Validation failed: Game has already been
taken"

I already have have specified that I want to allow_blank. I really
don't know why I get the validation error. I also tested allow_nil but
got the same error.

Андрей Большов

unread,
Apr 4, 2013, 9:54:54 AM4/4/13
to rubyonra...@googlegroups.com
think it should be:
 validates :game_id, uniqueness: {scope: :genre_id, allow_blank: true}

среда, 3 апреля 2013 г., 13:56:48 UTC+4 пользователь Lephyrius написал:
Reply all
Reply to author
Forward
0 new messages