ここにはたくさんの stringify_keys の質問がありますが、私の問題に適切に一致するものを見つけることができないので、少なくともそれに一致する例をいただければ幸いです。
Song、Mixtape、MixtapeSong という名前の 3 つのモデルがあります。
class Song < ActiveRecord::Base
attr_accessible :duration, :name, :order
belongs_to :album
has_many :mixtape_songs
has_many :mixtapes, :through => :mixtape_songs
end
class Mixtape < ActiveRecord::Base
attr_accessible :description, :image, :name
has_many :mixtape_songs
has_many :songs, :through => :mixtape_songs
end
class MixtapeSong < ActiveRecord::Base
attr_accessible :mixtape_id, :order, :song_id
belongs_to :mixtape
belongs_to :song
end
Rails コンソールから以下のコマンドを試したところ、mixtape_id と song_id の値だけでなく、'order' NULL を使用して mixtape_songs テーブルにレコードを追加することに成功しました。
mtape = Mixtape.find(1)
song = Song.find(3)
mtape.songs << song
また、update_attributes の実行は、「Undefined method signify_keys」エラーで失敗しました。
params = [:mixtape_id => 1, :song_id => 3, :order => 2]
mts = MixtapeSong.find(1)
mts.update_attributes(params)
私がする必要があるのは、「順序」値を指定して Mixtape モデルを介して、または「Undefined method signify_keys」エラーなしで MixtapeSong モデルを介して、この関連付けを追加することです。
Mixtape モデルを介して追加するのが正しい方法だと思いますが、「順序」を設定する方法がわかりませんか? どんな助けでも大歓迎です。