Ruby on Rails link_to:method => :删除语法

时间:2011-08-30 20:47:22

标签: ruby-on-rails ruby link-to

这是一个小问题。我有Project has_many的资源Feeds。当我在Project页面上查看嵌套Feeds列表时,我有一个Delete按钮从项目中删除该Feed。它适用于这种语法:

<%= link_to 'Delete', [feed.project, feed], :confirm => 'Are you sure?', :method => :delete %>

但是然后它会指向列出所有Feed的页面,而我希望它重定向回用户所在的Project页面。这是改变[feed.project, feed]还是改变其他问题?我还不太了解link_to的语法。

修改 在我的feeds_controller.rb中,我将重定向行更改为:back

def destroy
project = Project.find(params[:project_id])
@feed = project.feeds.find(params[:id])
@feed.destroy
redirect_to :back

respond_to do |format|
  format.html { redirect_to :back }
  format.xml  { head :ok }
end
end

2 个答案:

答案 0 :(得分:1)

您必须查看此资源的控制器。它应该在app/controllers/projects_controller之类的地方,应该有一个名为destroy的动作。执行重定向的代码必须在那里。您必须更改以下行:

redirect_to project_feeds_url(project)

到这个

redirect_to :back

答案 1 :(得分:0)

控制器中的

def destroy
  @project = Project.find(params[:project_id])
  @feed = @project.feeds.find(params[:id])
  @feed.destroy
  redirect_to @project
end