0

私はこれらの行を持っていますviews/admins/index.html.erb

Userを押した後、role_idsのセルでテーブルを更新しようとしましたupdate

が[1]の場合worker.role_ids、[2]に変わります。[2]の場合worker.role_ids、[1]に変わります。

<td><%= worker.email %></td>
<td><%= worker.role_ids %></td>
<td><%= link_to 'edit', edit_admin_path(worker) %></td>

editとを定義することはできます_formが、エレガントな方法はありませんか?

4

1 に答える 1

2

あなたはAjaxを介してそれを行うことができます(私はそれがあなたが探しているものだと思います)。リモートアクションを呼び出し、オブジェクトのIDを渡し、メソッドを呼び出して対応する値に更新できます。例えば:

意見

<%= link_to 'Change Role', change_admin_role_path(worker.id), :remote => true %>

コントローラ

def change_admin_role
   @worker = User.find(params[:id])
   @worker.change_role
end

ルートを追加することを忘れないでください。また、実際の値を評価して変更を加えるユーザーモデルにメソッドchange_roleを作成し、change_admin_role.js.coffee(またはchange_admin_role.js.erb)を作成して、 Ajax。

于 2013-01-02T03:06:04.057 に答える