クラブモデルとメンバーモデルがあり、これらはメンバーシップモデルを介して関連付けられています。言い換えると
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デプロイメントでのみ発生することです。