索引中的Ajax编辑页面

时间:2013-09-01 10:01:21

标签: ruby-on-rails ajax ruby-on-rails-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中执行此操作的?

1 个答案:

答案 0 :(得分:3)

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

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

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

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

respond_to do |format|
   format.js
end