我只是想知道是否有任何方法可以从视图中更新表的记录?例如,我可以使用下面的代码从表中删除记录吗?
<td><%= link_to 'Delete', my_path(user), :confirm => 'Are you sure?', :method =>:delete, :remote=>true %></td>
在我的控制器中,我有:
def destroy
@user = User.find(params[:id])
@user.destroy
respond_to do |format|
format.js do
render(:update) { |page| page.reload }
end
end
end
以上代码完美无缺。它从表中删除记录,并在单击destroy链接后重新加载页面。 现在,我的问题是:我可以更新记录中的值吗?如果是这样,我该怎么做?
答案 0 :(得分:0)
当然可以,你只需改变一些事情:
控制器中的方法是更新:
def update
@user = User.find(params[:id])
@user.update_attributes(params[:user])
respond_to do |format|
format.js do
render(:update) { |page| page.reload }
end
emd
end
然后,您可以将链接更改为以下内容:
<td><%= link_to "Update", my_path(user), :method => :put, :remote => true %></td>
请注意,这是假设你处于form_for @user
标签。
<%= form_for @user do |f| %>
<%= f.text_field :name %>
# aforementioned link to update goes here
<% end %>
您认为在控制器方法中设置@user(很可能是def edit
)
def edit
@user = User.find(params[:id])
end