Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/53.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 在某些视图中无法识别控制器变量_Ruby On Rails_Ruby_View_Scope_Redmine - Fatal编程技术网

Ruby on rails 在某些视图中无法识别控制器变量

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])

在RubyonRails中,如何在应用程序控制器和不同视图之间传递变量?是否有任何全局作用域可以帮助我们跟踪控制器中创建的任何变量,并在同一应用程序的任何视图代码中使用它

要在视图中使用来自应用程序控制器的方法,请将其标记为辅助方法。 像这样的

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中的另一个视图与同一控制器交互