【问题标题】:Access a controller variable in all the views在所有视图中访问控制器变量
【发布时间】:2015-06-25 12:38:43
【问题描述】:

我在控制器中有这个@event 变量,我想在所有视图中访问这个@event 变量。我不想让它成为一个全局变量。还有其他方法吗?我正在使用 Rails 4.1。

【问题讨论】:

    标签: ruby-on-rails ruby variables scope ruby-on-rails-4.1


    【解决方案1】:

    在ApplicationController的before_action中初始化?

    class ApplicationController < ActionController::Base
      before_action :init
    
      def init
        @event = ...
      end
    end
    

    【讨论】:

    • EventsController.rb 中定义的这个@event 可以在相应的视图文件 index.html.erb 中访问,但我想在另一个视图 feedback.html.erb 中使用它。只是在那个观点。任何帮助
    • 考虑使用静态变量。
    【解决方案2】:

    在您的控制器中,如果您有类似的变量:

    @event="Spectacle 1"
    

    你可以在你的 html.erb 文件中访问这个变量:

    <%= @event %>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多