के साथ विफल होने चाहिए मेरे पास 3 मॉडल, उपयोगकर्ता, खेल, और खिलाड़ी है। मूल रूप से उपयोगकर्ताओं और खेलों के बीच कई रिश्ते हैं, खिलाड़ियों के साथ जुड़ने वाली तालिका के रूप में, खिलाड़ियों को अन्य जानकारी है, इसलिए इसका अपना मॉडल है।कंधे matchers वैध_uniqueness_of scope
एक खिलाड़ी खेल आईडी और प्रयोक्ता आईडी की एक अद्वितीय कॉम्बो की जरूरत है, तो मैं खिलाड़ी में कहने के लिए करने की कोशिश की:
validates_uniqueness_of :user_id, :scope => :game_id
और फिर मेरी कल्पना में, मैं (चाहिये matchers का उपयोग कर) ने कहा:
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 हो रही है: यहाँ
रिश्तों खिलाड़ी को परिभाषित करता है कर रहे हैं उस spec पर tinvalid त्रुटि
ActiveRecord::StatementInvalid: Mysql2::Error: Column 'game_id' cannot be null: INSERT INTO `players` ETC...
कोई विचार क्या गलत हो रहा है?
धन्यवाद। यह नहीं पता था कि बग वहां था। – bdwain
अद्यतन: यह v 2.7 में तय किया जाएगा। देखें: https://github.com/thoughtbot/shoulda-matchers/commit/e3493811865a42b4bebcf0d3001333b9d4cb5208 –