所以我有一个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