0
我有一個包含多個Tracks的Playlist對象的模型。它是:has_many:through,PlaylistItem作爲連接表。重載模型任務以創建關聯模型
模型創建完成後,我只想通過一整套track_ids來創建所有關聯的PlaylistItems(所有軌跡已經存在)。我將它公開爲API,所以我無法真正創建好的表單/控制輸入。
# in PlaylistsController
@playlist = Playlist.new :some_attr => "ABCDE", :playlist => ["123","22","11"]
我想要做的就是創建一個自定義的分配方法是這樣的:由於我使用創建的,而不是新來的
class Playlist < ActiveRecord::Base
...
def playlist=(track_array)
track_array.each do |track_id|
# check for valid track_id, add info to errors if something's wrong
# for valid tracks, add it to playlist_items
playlist_items.create(:track_id => track_id)
end
end
,這是一個錯誤,因爲當前創建的播放列表項沒有按目前還沒有ID。我現在要堅持刪除鑰匙,並在控制器中完成所有這些工作,但我確信有一些方法可以實現這種巧妙的分配技巧。有什麼想法嗎?
更新
我只是找到了一個解決方案:
playlist_items << playlist_items.new(:track_id => track_id)
似乎是工作。應該已經分配回播放列表對象的屬性和使用新的更早的想法...
哦屬實,這應該不是追加每次快。謝謝! – 2011-01-07 18:44:35