这是一个关键问题。我有资源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