我目前正在研究在 RoR 中进行重定向的解决方案,因为我在刹车报告中收到一个错误,说我必须以正确的方式修复重定向。我了解消息的内容以及如何在一个控制器操作中解决它。但现在我得到了以下内容。在新方法的实例化过程中,我设置了可在创建操作中使用的 HTTP_REFERER 标头。
这给了我一个 Brakeman 警告,可以在以下链接中找到
假设我有以下具有多个端点的控制器:
def new
@my_model_set = MyModel.new
@referer = request.env['HTTP_REFERER'] # We want to redirect to this referer after a create
end
def create
...
if @my_model_set.save
flash_message :success, t('notification.item_created', type: @my_model_set.model_name.human)
if params[:referer].present?
redirect_to params[:referer]
else
redirect_to admin_my_model_set_path
end
else
...
end
end
我已经尝试通过使用redirect_back
来自 RoR 的方法来解决这个问题,但这是使用我不想使用的 create 方法的引用链接。
if @my_model_set.save
flash_message :success, t('notification.item_created', type: @my_model_set.model_name.human)
redirect_back(fallback_location: admin_my_model_set_path)
else
...
end