これは、リストを作成してそのリストにアイテムを置くためのレール・アプリです。機能として、ユーザーは複数のリストに1つのアイテムを置くことができます。例:アイテムが複数のリスト(ルビー・オン・レール)にあるときのアイテムの並びをリストアップ
List_1
-item_1
-item_2
List_2
-item_3
-item_2
それをすべての関係側が完了し、正常に動作しています。
次のステップは、ユーザーがリスト内のアイテムを手配することでした。私はact_as_listをインストールし、jQuery sortableを使用することで項目を並べ替えるための簡単なドラッグアンドドロップができました。問題は、それぞれのアイテムが1つのポジションを持っていることです。したがって、item_1の位置をlist_1で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
このモデルは、ユーザーがドラッグしているモデルですか? –
ユーザは、 '@items = @list.items'がある' @list'のためのショービューであるリストを見ています。ユーザーは、アイテムを上下にドラッグしてリスト内で並べ替えることができます。各ドラッグの後、位置が保存されます。現在私が持っているのは、他のすべてのリストの位置を変えずに、このリストの相対的な位置を保存する必要があるときに、アイテムの現在の位置を簡単に保存できることです。 – JonathanSimmons