我有3個模型,用戶,遊戲和玩家。用戶和遊戲之間基本上有多對多的關係,玩家作爲連接表,除了玩家有其他信息,所以它有自己的模型。shoulda matchers should validate_uniqueness_of failing with scope
玩家需要的遊戲ID和用戶ID的獨特組合,所以我試圖在球員說:
validates_uniqueness_of :user_id, :scope => :game_id
,然後在我的天賦,我說(用早該的匹配):
it { should validate_uniqueness_of(:user_id).scoped_to(:game_id)}
這裏是玩家定義的關係:
belongs_to :game, :inverse_of => :players
belongs_to :user, :inverse_of => :players
但我得到一個ActiveRecord :: statemen該規格的tinvalid錯誤
ActiveRecord::StatementInvalid: Mysql2::Error: Column 'game_id' cannot be null: INSERT INTO `players` ETC...
任何想法發生了什麼問題?
感謝。沒有意識到那個bug在那裏。 – bdwain 2013-04-28 22:24:01
更新:這將在v 2.7中修復。見:https://github.com/thoughtbot/shoulda-matchers/commit/e3493811865a42b4bebcf0d3001333b9d4cb5208 – 2014-07-19 00:10:21