我需要能够在当前页面上设置我的导航,具体取决于用户当前所在的页面。
例如
pageX => pageA的(tab1selected) pageY => pageA的(tab2selected)
我从阅读中知道你可以使用request.env [“HTTP_REFERER”],但我读到如果用户有防火墙等,并不总是返回
如果有帮助,我在我的应用程序中使用设计。
还有其他方法吗?
由于 亚历
答案 0 :(得分:2)
虽然不是一个快速的解决方案,但它确实有效:
最后,每个控制器带有视图,调用方法将您的商店设置为会话中的当前操作。如果使用多个控制器,则为控制器创建另一个变量。
e.g。
def index
... # your stuff
set_action("index")
end
protected
def set_action(action_name)
session[:action]=action_name
#session[:controller]="my_controller_name"
end
您可以在每个控制器中重新创建set_action方法,或者创建一个帮助器,然后使用2个参数:
def last_visited(action_name, controller_name)
session[:action]=action_name
session[:controller]=controller_name
end
答案 1 :(得分:2)
很久以前就提出过这个问题,但对于其他任何观看此问题的人来说,我的解决方案(虽然有点像黑客)是:
url = Rails.application.routes.recognize_path(request.referrer)
last_controller = url[:controller]
last_action = url[:action]