Ruby on rails 在某些视图中无法识别控制器变量
在RubyonRails中,如何在应用程序控制器和不同视图之间传递变量?是否有任何全局作用域可以帮助我们跟踪控制器中创建的任何变量,并在同一应用程序的任何视图代码中使用它 要在视图中使用来自应用程序控制器的方法,请将其标记为辅助方法。 像这样的Ruby on rails 在某些视图中无法识别控制器变量,ruby-on-rails,ruby,view,scope,redmine,Ruby On Rails,Ruby,View,Scope,Redmine,在RubyonRails中,如何在应用程序控制器和不同视图之间传递变量?是否有任何全局作用域可以帮助我们跟踪控制器中创建的任何变量,并在同一应用程序的任何视图代码中使用它 要在视图中使用来自应用程序控制器的方法,请将其标记为辅助方法。 像这样的 class ApplicationController < ActionController::Base def current_user @current_user ||= User.find(session[:user_id])
class ApplicationController < ActionController::Base
def current_user
@current_user ||= User.find(session[:user_id])
end
helper_method :current_user
end
class ApplicationController
现在,
current\u user
方法可以在所有视图中访问,它可以用于获取@current\u user
实例变量。只需在应用程序帮助程序中编写代码,就可以通过应用程序中的任何视图访问。请阅读(特别是第3部分)
不过,这不是最好的选择,我建议阅读有关在控制器中公开变量的内容
或
就是为了这个而创建的,我推荐它们。这样声明的变量:
@current_user
例如,只要在该视图的控制器中调用创建该变量的方法,就可以在任何视图中使用
你可以在这里阅读更多关于ruby变量的内容你想实现什么?你能添加一个例子吗?我正在开发一个redmine插件。我在“myPlugin/app/views”中有我的视图文件“_index.html.erb”。我无法使用“_index.html.erb”视图文件中的实例变量(在我的应用程序控制器中声明)。日志文件说无法识别“@project”。。。尽管如此,我还是能够从myPlugin/app/views/myPlugin/index.html.erb中的另一个视图与同一控制器交互