如何在Ruby上的应用程序控制器和不同视图之间传递变量?是否有任何全局范围可以帮助我们跟踪控制器中创建的任何变量并将其用于同一应用程序中的任何视图代码中?
答案 0 :(得分:0)
要在视图中使用应用程序控制器中的方法,请将其标记为辅助方法。 像这样的东西
class ApplicationController < ActionController::Base
def current_user
@current_user ||= User.find(session[:user_id])
end
helper_method :current_user
end
现在,current_user
方法可在所有视图中访问,并且可用于获取@current_user
实例变量。
答案 1 :(得分:0)
只需在应用程序帮助程序中编写代码,就可以通过应用程序中的任何视图访问它。
答案 2 :(得分:0)
请阅读http://guides.rubyonrails.org/action_controller_overview.html(特别是第3部分)
这不是最佳选择,我建议阅读有关在控制器中公开变量的内容。
https://github.com/hashrocket/decent_exposure 要么 https://github.com/netguru/decent_decoration
就是为此创建的,我推荐它们。
答案 3 :(得分:0)
如此声明的变量:
@current_user
例如,只要在控制器中为该视图调用创建该变量的方法,就可以在任何视图中使用。
您可以在此处阅读有关ruby变量的更多信息http://ruby-doc.org/docs/ruby-doc-bundle/UsersGuide/rg/variables.html