1
我試圖將acts_as_list
添加到我的數據庫中的現有playlists
表中,該表存儲我的用戶可能創建的任何播放列表。目標是讓用戶對自己的播放列表進行排序。我可以使用acts_as_list在一列中創建多個列表嗎?
此遷移將爲表格中的播放列表設置默認位置,但該位置將設置在全局上下文中(例如,對於其中包含500個播放列表的表格,position
列將被排序爲1-500) :
class AddPositionToPlaylistsTable < ActiveRecord::Migration
def self.up
add_column :playlists, :position, :integer
Playlist.reset_column_information
playlist = Playlist.find(:all, :order => "created_at ASC")
playlist.each_with_index do |p, i|
p.position = i+1
p.save
end
end
def self.down
remove_column :playlists, :position
end
end
此順序將是有問題的,因爲從500到499移動的項目的位置不一定反映從用戶的角度來看的任何變化(因爲它們可能有具有50 position
播放列表,70,100 ,和500)。相反,我想爲每個用戶上下文中的表中的每個播放列表設置一個位置(例如,假設每個用戶有5個播放列表,position
列將有多個播放列表的實例,每個播放列表的排序順序爲1-5用戶)。
這是可能的,如果是的話,我將如何修改我的移民做到這一點?