這裏有很多stringify_keys的問題,但我找不到適合我的問題的匹配項,所以至少在任何匹配它的例子中我都會很感激。使用多對多關聯時未定義的方法'stringify_keys'錯誤
我有三個名爲Song,Mixtape和MixtapeSong的模型。
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
,當我試圖下面通過鐵軌控制檯命令,我成功將記錄添加到mixtape_songs表mixtape_id和song_id值,但也與「訂單」 NULL:
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)
我需要做的是通過添加與指定「訂單」值或通過MixtapeSong模型,而無需「未定義方法signify_keys」錯誤混音帶模型此關聯。
我想正確的方法是通過Mixtape模型添加,但我無法弄清楚如何設置'訂單'?任何幫助表示讚賞。
錯誤括號!使用捲曲的:'{:mixtape_id => 1,:song_id => 3,:order => 2}' – jdoe
謝謝@jdoe,我改正了它,它工作。有什麼方法可以通過Mixtape或Song模型來完成嗎?或者因爲我有一個額外的領域以外的相關領域,我必須使用MixtapeSong爲了插入/更新'訂單'VAL? – azer
我說得對,您需要按照用於「插入」它們的順序爲特定的Mixtape獲取歌曲嗎? – jdoe