所以我有一個Rails應用程序,它允許用戶創建列表並將項目放在列表中。作爲一項功能,用戶可以將任何一個項目放在多個列表中。例如:它的所有列出項目的順序,當項目可以在多個列表(紅寶石在軌道上)
LIST_1
-item_1
-item_2
List_2
-item_3
-item_2
的關係方面是完整的,做工精細。
下一步是讓用戶安排他們的列表中的項目。我安裝了act_as_list,並使用jQuery sortable得到了一個簡單的拖放工作排序項目。問題是每個項目都有一個位置。因此,如果我在list_1上將item_2的位置更改爲1,則item_2的位置現在在每個列表中都爲1。
我試圖想出一種方法來存儲項目相對於列表的位置。任何人有任何想法?
編輯添加的代碼
列表模型
class List < ActiveRecord::Base
belongs_to :user
has_many :assignments, dependent: :destroy
has_many :items, through: :assignments, order: 'position'
end
項目模型
class Item < ActiveRecord::Base
belongs_to :user
has_many :assignments, dependent: :destroy
has_many :lists, through: :assignments
acts_as_list scope: :list
end
分配模型
class Assignment < ActiveRecord::Base
belongs_to :item
belongs_to :list
validates_uniqueness_of :item_id, :scope => :list_id
end
哪個模型是用戶在哪個模型之間拖動的? – 2011-12-17 02:54:12
用戶正在查看一個列表,這是`@ list`的顯示視圖,其中`@items = @ list.items`。用戶可以上下拖動項目以在列表中對其進行排序。每拖動一次後,位置被保存。目前我所擁有的是能夠簡單地保存物品當前位置,當我真的需要能夠保存該物品相對於此列表的位置時,無需改變其在每個其他列表中的位置。 – JonathanSimmons 2011-12-17 03:05:19