我正在从控制器重定向到另一个控制器。
redirect_to :controller => :controller_name, :action => :action_name
然后在动作上我想检查是否有重定向
def action_name
#check if there wass redirected
end
答案 0 :(得分:1)
推荐的方式是@Dimitris在另一个答案中描述的如何也可以这样做
if some_condition
flash[:redirect] = 'some value'
redirect_to :controller => :controller_name, :action => :action_name
end
并在另一个控制器controller_name
def action_name
if flash[:redirect] == 'value you set' # checks if came from redirection
# your intended code here
end
end
由于存储在 flash 哈希值中的值会在单个重定向中保留,您可以这样做但请注意 flash.now ,因为它仅在请求后仅保留在该请求上响应 flash.now 值被刷新。 但是,您可以根据需要持久保存键:值。欲了解更多信息 此。http://guides.rubyonrails.org/action_controller_overview.html#the-flash
或者只是您可以使用Session
代替flash
,但是您必须在工作完成后清除session
您的自我。在一天结束时,flash
也会存储在session
答案 1 :(得分:0)
您可以随时对引用者执行特定检查,如:
if request.referer =~ /controller-name-here/
# code here
end