我想知道你是否知道何时来自redirect_back。如果我来自这里,我想在我的HTML上显示一个弹出窗口:
class PaymentsController < ApplicationController
def addproduct
(session[:products] ||= []) << params[:item]
redirect_back(fallback_location: "/")
end
end
有什么办法吗?
答案 0 :(得分:2)
您可以使用request.referrer
。
您可以使用request[:controller]
和/或request[:action]
查看来自的控制器和操作(方法)。
将其放入app/layouts/application.html.erb
,您就可以看到每个推荐人:
<%= request[:controller] %>
<%= request[:action] %>
答案 1 :(得分:2)
这有点hacky但它可以工作,redirect_back的定义接受fallback_location
和args
。所以也许你可以使用flash
来传递像:
# controller
redirect_back(fallback_location: "/", flash: { from_add_product: true } )
# view
<% if flash[:from_add_product] %>
# show popup
<% end %>
另一种选择是使用request.referer
来检查网址:
# view or a helper
<% if request.referer && request.referer =~ /payments\/addproduct/ %>
# show popup
<% end %>