我有一個Club模型和一個會員模型,它們通過一個Membership模型關聯。換句話說保存模型時關聯「無效」
class Club < ActiveRecord::Base
has_many :members, :through => :memberships
end
class Member < ActiveRecord::Base
has_many :clubs, :through => :memberships
end
然而,當我試圖創建一個新的成員,並將其添加到一個俱樂部,我得到一個錯誤說,俱樂部是無效的。
> club = Club.find(1)
> member = Member.new(:name => 'Member Name')
> member.clubs << club
> member.save
member.save
語句將返回false。望着member.errors.messages,我發現
> member.errors.messages
@messages={:clubs=>["is invalid"]}
真正奇怪的事情是不會發生這種情況了(使用sqlite3的)我的開發環境,但只能在使用MySQL的我EngineYard的部署。
除了我下面的回答,你確定'club'被發現並且在它自己添加到'member.clubs'之前是有效的嗎? – 2013-03-16 21:52:55
是的,俱樂部被發現並且有效。您可以毫無問題地以俱樂部身份登錄網絡應用程序。只有當俱樂部試圖添加會員時,問題纔會發生。 – 2013-03-16 22:16:48
此外,我的演示俱樂部的種子數據加載正常。因此,關聯表就位並正常工作。它只是不會接受任何新的關聯。 – 2013-03-16 22:19:29