我想知道如何确定 :delete 请求来自哪个页面?例如,我有一个同时出现在用户主页和展示页面上的墙贴。当用户从主页删除帖子时,我希望用户被重定向到主页,而如果他从他的节目(个人资料)页面删除它,我希望用户被重定向回那里。问题是,我很难区分它的来源。
我知道在 :delete 请求中,您不能传递隐藏值,因为它不是 :post。我试过检查参数,但它们最终都是一样的。它们具有相同的 :method、:controller 和 :action 即
{"_method"=>"delete", "authenticity_token"=>"xNsfq27sBrpssTO8sk0aAzzIu8cvnFJEZ30c17Q+BCM=",
"action"=>"destroy", "controller"=>"pub_messages", "id"=>"33"}
在我的破坏行动中,我有:
def destroy
@pub_message = PubMessage.find_by_id(params[:id])
@pub_message.destroy
redirect_to user_path(@pub_message.to_id)
end
但是,我不想总是重定向回 user_path,而是想重定向到 root_path,但只是不知道用户何时在主页上发出破坏操作。
我在我的视图中显示删除选项的地方是......
<% if current_user == feed_item.user or current_user == feed_item.to %>
<%= link_to "delete", feed_item, method: :delete,
confirm: "You sure?",
title: feed_item.content %>
<% end %>
我怎样才能解决这个问题?