Ruby on Rails link_to :method => :d elete 语法



这是一个关键问题。我有资源Project has_many Feeds。当我在Project页面上查看嵌套提要列表时,我有一个Delete按钮来从项目中删除该提要。它使用以下语法:

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

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

编辑:

在我的feeds_controller。我将重定向行改为: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

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

redirect_to project_feeds_url(project)

redirect_to :back

在你的控制器

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

最新更新