2011-12-21 24 views
1

我只是想知道是否有任何方法可用来更新视图中的表记录?例如,我可以使用下面的代码从表中删除一条记录吗?使用Rails远程功能更新记录

<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 

上面的代码完美的作品。它从表中删除记录,并在点击销毁链接后重新加载页面。 现在,我的问题是:我可以做同样的更新我的记录中的值吗?如果是这样,我该怎么做?

回答

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 
+0

非常感谢你为你的那个为我工作与“更新我试图立即响应'而不是'把' – 2011-12-21 06:46:03

+0

你可以请检查我的相关问题在这里http://stackoverflow.com/questions/11477359/why-ajax-is-not-used-when-i-submit-my-remote-update-form – simo 2012-07-14 05:01:45