私は2つのモデル、ユーザー、プロジェクトを持っています。今は、has_and_belongs_to_many接続(多数対多)によって接続されています。ユーザーにはプロジェクトのリストがあり、このリストはajaxでソート可能です。しかし、私はこの注文を保存したい。この注文と店舗を適切な方法でどのように送ることができますか?私はjQueryUIで動作sorteable一覧へAjaxリストにアイテムの並び順を保存するにはどうしたらいいですか?
-1
A
答えて
1
- >http://jqueryui.com/demos/sortable/
リストを取得するには:私はアヤックス
1
でデータを送信
var projects = Array();
var j=0;
$("#sortable li").each(function(i, item){
projects[j] = $("#"+item.id).html();
j++;
});
var data = {"list": projects};
が、あなたはプロジェクトのオーダーで考えなければなりませんユーザーとプロジェクトの関係の属性としてユーザーリストに表示します。ユーザー/プロジェクトの各ペアには1つの属性 'order'があります。
この情報は、中間テーブル(projects_users)に格納する必要があります。
しかし、あなたはhave_and_belongs_to_manyリンクテーブルに属性を追加することはできませんので、あなたのような何かにそれを変更する必要があります。
class User
has_many :allocations
has_many :projects, :through => :allocations
end
class Project
has_many :allocations
has_many :users, :through => :allocations
end
と配分表の移行は、このようなものでなければなりません:
create_table :allocations do |t|
t.integer :project_id
t.integer :user_id
t.integer :order
end
こうすることで、与えられたユーザーに割り当てられているプロジェクトごとに、注文を指定することができます。
こちらがお役に立てば幸いです。
1
あなたができることは、すべての項目をJavascriptでループし、AJAXを使用してRailsアクションにIDの配列を送信することです(Manu Moraの例のように)。その後、あなたは次の操作を行うことができ、あなたのコントローラのアクションに
project_ids: 1,3,5,2,4
id: 1
:
@user = User.find(params[:id])
@user.update_attributes(:project_ids => params[:project_ids].split(","))
を、私はそれは、アレイのような方法でパラメータを送信する方法がわからないパラメータは、次のようになります自動的に、私はsplit
を使用します。 HABTMを使用するときに注文が正常かどうかわかりません。そうでない場合は、has_many :through
に「注文」または「位置」の列を使用する必要があります。注文列を設定する必要があるので、私があなたに示した方法では動作しません。
希望します。 :)
関連する問題
- 1. Neo4jにアルファベット順に並べられたノード名のリストはどのように保存するのですか?
- 2. アイテムをアルファベット順にソートしてからリストに追加するにはどうしたらいいですか?
- 3. アイテムごとに詳細リストを保存するにはどうしたらいいですか?
- 4. [Python]リスト内のタプルを昇順/降順で並べ替えるにはどうしたらいいですか?
- 5. 保存時にPythonでSQLカラムの順序を保持するにはどうしたらいいですか?
- 6. リストを時系列順に並べるにはどうしたらいいですか?
- 7. Djangoデータベースに保存されたオブジェクトの並び順を変更するには
- 8. jQueryUI Sortableリストのソート順をlocalStorageに保存するにはどうすればいいですか?
- 9. linuxにファイルを保存するにはどうしたらいいですか?
- 10. Javaの型を保存するにはどうしたらいいですか?
- 11. DBからアイテムを取得してsharedpreferenceに保存するにはどうすればいいですか?
- 12. イメージをPythonで保存するにはどうしたらいいですか?
- 13. ヒストグラムプロットをPythonで保存するにはどうしたらいいですか?
- 14. プロセスを保存するにはどうしたらいいですか?
- 15. 階層データを保存するにはどうしたらいいですか?
- 16. Prolog - 再帰呼び出しの結果を保存するにはどうしたらいいですか?
- 17. NetbeansのJ2ME:リスト項目を右から左に並べるにはどうしたらいいですか?
- 18. VueFireを使用して、私のリストを降順(最新から古い)で日付順に並べるにはどうすればいいですか?
- 19. firebaseデータベースのデータを昇順または降順に並べるにはどうすればいいですか?
- 20. Ajax/HTTPからのデータのリストを呼び出した順に返します
- 21. サブライン(ST2)でサイドバーをアルファベット順に並べ替えるにはどうしたらいいですか?
- 22. PHPで画像をアルファベット順に並べ替えるにはどうしたらいいですか?
- 23. リストからアイテムを削除するにはどうしたらいいですか?
- 24. リストからアイテムを印刷するにはどうしたらいいですか?
- 25. ループからのrnorm出力を別のベクターに保存するにはどうしたらいいですか?
- 26. AngularJsで互いに依存する並列および順次関数呼び出しを使用するにはどうすればよいですか?
- 27. Firebaseデータベースを年代順に並べ替えるにはどうしたらいいですか?
- 28. フィルタメニューをアルファベット順に並べるにはどうすればいいですか
- 29. 新しいwishlistのidを `wishlist_entry`の` wishlist_id`フィールドに保存するにはどうしたらいいですか?
- 30. 既存のアイテムをnetsuiteのマトリックスに追加するにはどうしたらいいですか?
テーブルのIDは正しくなければなりませんか?私はあなたがHABTMテーブルを作成するときにはid:> falseを使うと思った。 – RobinBrouwer
私はajax注文を保存することはできますか? –
Oguz、Ajaxは、ブラウザからサーバーへの通信の単なる方法です。 Ajax自体は何も保存も注文もしません。あなたがjavascriptでリストを保存して注文することを意味するのであれば、私はManu Moraの解決策は良い方法だと思います。もしあなたがミスウインドをしたら、すみません。 –