: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 %>
どうすればこれを修正できますか?