我想知道是否有任何方法可以知道您何时来自 redirect_back。如果我来自这里,我想在我的 html 上显示一个弹出窗口:
class PaymentsController < ApplicationController
def addproduct
(session[:products] ||= []) << params[:item]
redirect_back(fallback_location: "/")
end
end
有什么办法吗?
这有点 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
来检查 url,例如:
# view or a helper
<% if request.referer && request.referer =~ /payments\/addproduct/ %>
# show popup
<% end %>
我是一名优秀的程序员,十分优秀!