3

我有这个页面索引页面:

<h1>Listing users</h1>

<table border="1">
  <tr>
    <th>Name</th>
    <th>Description</th>
    <th>Who</th>
    <th></th>
    <th></th>
    <th></th>
  </tr>

<% @users.each do |user| %>
  <tr>
    <td><%= user.name %></td>
    <td><%= user.description %></td>
    <td><%= user.who %></td>
    <%= render 'users/form' %>
    <td><%= link_to 'Show', user %></td>
    <td><%= link_to 'Edit', edit_user_path(user) %></td>
    <td><%= link_to 'Destroy', user, method: :delete, data: { confirm: 'Are you sure?' } %></td>
  </tr>
<% end %>
</table>

<br />

<%= link_to 'New User', new_user_path %>

脚手架控制器

def index
    @users = User.all

    respond_to do |format|
      format.html # index.html.erb
      format.json { render json: @users }
    end
  end

我需要在索引页面中编辑用户,而不是去 url /users/2/edit,留在用户页面上。

我如何在 Ajax 中做到这一点?

4

1 回答 1

3

添加remote:true到该Edit行以进行 ajax 调用:

<td><%= link_to 'Edit', edit_user_path(user), remote:true %></td>

此外,添加一个edit.js.erb文件(嵌入 ruby​​ 的 javascript 文件),您可以在其中执行要在Edit. 该edit.js.erb文件是在edit方法完成时生成的。您可以在此处编写对影响当前页面的 javascript 代码的所有更改(该页面不会重新呈现)。

此外,将以下内容添加到edit方法中:

respond_to do |format|
   format.js
end
于 2013-09-01T10:13:26.083 回答