Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/53.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 控制器内销毁操作中的不同重定向到取决于原点_Ruby On Rails - Fatal编程技术网

Ruby on rails 控制器内销毁操作中的不同重定向到取决于原点

Ruby on rails 控制器内销毁操作中的不同重定向到取决于原点,ruby-on-rails,Ruby On Rails,我目前在一个运行良好的控制器中有一个销毁功能,但问题是,我需要在删除后将用户重定向到不同的URL,具体取决于该按钮的单击位置 例如,如果用户access正在查看索引中的他的记录列表,并单击“删除”,他将通过重定向到索引路径重定向回索引(我无法使用:后退操作,因为它会导致ActiveRecord::RecordNotFound),如果用户单击“查看所有记录”中的“删除”按钮页面我需要重定向用户以查看所有记录路径 我是否需要创建不同的控制器、操作等?让我知道。非常感谢 您可以检查控制器中的reque

我目前在一个运行良好的控制器中有一个销毁功能,但问题是,我需要在删除后将用户重定向到不同的URL,具体取决于该按钮的单击位置

例如,如果用户access正在查看索引中的他的记录列表,并单击“删除”,他将通过重定向到索引路径重定向回索引(我无法使用:后退操作,因为它会导致ActiveRecord::RecordNotFound),如果用户单击“查看所有记录”中的“删除”按钮页面我需要重定向用户以查看所有记录路径


我是否需要创建不同的控制器、操作等?让我知道。非常感谢

您可以检查控制器中的
request.referer
并根据该值重定向,它将具有单击“删除”按钮时所在页面的完整URL。您可以使用正则表达式或其他方法来确定应该重定向此用户的位置

if request.referer.include?('see_all_records')
  ..redirect to see_all_records
else
  ..redirect to index
end

首先,感谢您的回复<代码>def destroy@records=records.find(参数[:id]),如果@records.present@records.destroy if request.referer.contains('profile')重定向\u到用户\u路径elsif request.referer.contains('records')重定向\u到查看\u所有记录\u路径结束否则重定向\u到错误\u页面\u路径结束给我错误未定义的方法'contains',对不起,我的错了,包括?是您应该使用的,答案已更新。