我有这个页面索引页面:
<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中执行此操作的?
答案 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