2011-10-30 16 views
3

私は、ユーザーがいずれかの行をクリックするとその行が表示されるようなデータ要素を表示する表を作成する最もRails-y方法を探しています編集可能。私はこれまで持っているもの:クリック時の<table>のインライン編集Rails 3.0/jQuery AJAX

  1. 表の各行は、部分

  2. によってレンダリングされた私がjQuery.loadを使用して行のクリックイベントにjQueryのイベントハンドラをバインド行

これは、ほぼ次のコードで、作品への部分的な編集のためのHTMLをロード:

tasks.jsを

$(document).ready(function() { 
    $('.task_row').click(function() { 
     var id = $(this).attr('id'); 
     $('#' + id).load('/tasks/' + id + '/edit'); 
     //$(this).unbind('click'); 
    }); 
}); 

_edit_row.html.erb

<%= form_for(task, :remote => true) do |f| %> 
    <td> 
    <%= f.text_field :title %> 
    </td> 
    <td> 
    <%= f.text_field(:due_date_string, :value => format_time(f.object.due_date)) %> 
    </td> 
    <td> 
    <%= f.text_field(:tag_string) %> 
    </td> 
    <td> 
    <%= f.submit %> 
    </td> 
    <td> 
    <%= link_to 'Delete', task, :confirm => 'Are you sure?', :method => :delete %> 
    </td> 
<% end %> 

問題は、フォームが提出していないということです。 fmitボタン( 'Update')をクリックすると、何も起こりません.JSエラーはなく、サーバーに要求はありません。

これは完全に間違ったアプローチかもしれません。当初、私はjavascriptを使用して全体をやって、手動で値を読んで、私のRailsコントローラのupdateメソッドへのjQuery ajax呼び出しを行っていましたが、もっと簡単な方法があると思いました。助言がありますか?

答えて

3

これを行う最も簡単な方法は、あなたが提案したように、javascriptですべての編集を行い、次にサーバーを更新するためのajax呼び出しを行うことです。

jQuery DataTablesプラグイン - http://datatables.net/がjEditable(http://www.datatables.net/examples/api/editable.html参照)とペアになっていますが、DataTablesがボートを浮かべていない場合でも、他にも優れたプラグインがあります。

関連する問題