0

私はmongoidを使用してmongodbに裏打ちされたRailsアプリを構築しています。

これは、HTML テーブルを備えた 1 ページのアプリであり、そのすべての行のすべてのフィールドは、ページを更新せずに編集可能にする必要があります。

これは通常の Rails ビュー (多くの Rails キャストと同様) で、データを含む行と列を持つテーブルを示しています。

例えば。私は車を見せて、そのメーカー、モデル、メモを見せています

私がこれを行っている方法は、mongo ドキュメントの _id をすべての列に追加し、そのフィールド名を html id にもマークすることです。次に、$("#id") の値を取得し、AJAX 経由で Rails コントローラーに送信し、それに応じて @car.update_attributes メソッドを実行します。

現在、私の行の1つはこのようになっています。

    <tr>
       <td id=<%= car.id %>_make>
       <%= car.make %>
       </td>

       <td id=<%= car.id %>_model>
       <%= car.model %> 
       </td>

       <td id=<%= car.id %>_notes>
       <%= car.notes %>
       </td>
     </tr>

     // my function which is called onChange for every column
     function update_attributes(id){
        var id = id.split[0];
        var attribute = id.split[1];
        $.ajax("sending id and attribute to rails controller");
     }

ページを更新せずにモデル内のフィールドのみを更新できる Rails マジックはありますか?

また。

このためのRailsプラグインはありますか?

4

2 に答える 2

0

あなたが説明しているもの (1 ページの ajax 中心のアプリ) については、backbone.jsを使用することを強くお勧めします。別の方法として、他の単純な gem (または手動で jquery ajax を作成する) を使用してこれを実現することもできますが、ajax 中心のアプリではすぐに混乱してしまうことがわかります。backbone.js の最大の利点の 1 つは、Ajax コードをいかにうまく整理できるかということです。優れた組み込みの足場の助けを借りて、数分で起動して実行できるbackbone-rails gemを使用してみてください。

あなたの質問にもっと直接的に答えるために、あなたが探しているという意味でajaxはレールに「組み込まれている」わけではありませんが、これをより簡単に行うのに役立つ宝石があります(バックボーンレールなど)。

于 2012-11-24T17:01:52.433 に答える
0

また、この目的のために特別に作成されたrest_in_placeと呼ばれる gem もあります。インプレース編集を実行するために必要な構成はほとんどありません。コントローラーには、すべての restfull メソッドが必要です。

于 2012-11-24T17:19:48.870 に答える