私は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. アイテムをアルファベット順にソートしてからリストに追加するにはどうしたらいいですか?
- 2. Djangoデータベースに保存されたオブジェクトの並び順を変更するには
- 3. Javaの型を保存するにはどうしたらいいですか?
- 4. プロセスを保存するにはどうしたらいいですか?
- 5. NetbeansのJ2ME:リスト項目を右から左に並べるにはどうしたらいいですか?
- 6. Ajax/HTTPからのデータのリストを呼び出した順に返します
- 7. サブライン(ST2)でサイドバーをアルファベット順に並べ替えるにはどうしたらいいですか?
- 8. リストからアイテムを削除するにはどうしたらいいですか?
- 9. 新しいwishlistのidを `wishlist_entry`の` wishlist_id`フィールドに保存するにはどうしたらいいですか?
- 10. Javaのリストにスレッドのリストを保存するにはどうすればいいですか?
- 11. Pythonで2つの順序リストを比較するにはどうしたらいいですか?
- 12. grailsのparamsのリストから日付を保存するにはどうすればいいですか?
- 13. フォームからMongodbデータベースにデータを保存するにはどうしたらいいですか?
- 14. accord.netに「学習した状態」を保存するにはどうしたらいいですか?
- 15. 不完全にマージされたインデックスをgitに保存するにはどうしたらいいですか?
- 16. C++でデータを保存し、データを検索可能にするにはどうしたらいいですか?
- 17. 保存する前にDjangoフォームフィールドの値を変更するにはどうしたらいいですか?
- 18. AppleScriptのscptファイルの束をアプリケーションにバッチで保存するにはどうしたらいいですか?
- 19. パネルを自分のフォームに画像として保存するにはどうしたらいいですか?
- 20. 既存のリストから新しいリストを作成するにはどうすればよいですか?
- 21. アイテムのリストを一時的に保存するには?
- 22. Mercuryで保存されたイベントにバインドするにはどうしたらいいですか?
- 23. フォームの値をmysqlデータベーステーブルに保存するにはどうしたらいいですか? (後の方法)
- 24. ビジュアルモードのテキストブロックをVimのファイルに保存するにはどうしたらいいですか?
- 25. WPF ItemsControlでアイテムのソート順を保持するにはどうすればよいですか?
- 26. PyCharmでは、現在のファイルだけを保存するにはどうしたらいいですか?
- 27. 暗号鍵をjavaに安全に保存するにはどうしたらいいですか?
- 28. ダウンロードした写真を保存するにはどうしたらいいですか?
- 29. リストのメンバーシップを確認するにはどうしたらいいですか?
- 30. MessageDigestの内部状態をデータベースに保存するにはどうしたらいいですか?
テーブルのIDは正しくなければなりませんか?私はあなたがHABTMテーブルを作成するときにはid:> falseを使うと思った。 – RobinBrouwer
私はajax注文を保存することはできますか? –
Oguz、Ajaxは、ブラウザからサーバーへの通信の単なる方法です。 Ajax自体は何も保存も注文もしません。あなたがjavascriptでリストを保存して注文することを意味するのであれば、私はManu Moraの解決策は良い方法だと思います。もしあなたがミスウインドをしたら、すみません。 –