使用控制器中的问题来访问所有控制器中的变量

时间:2013-12-16 13:06:46

标签: ruby-on-rails ruby ruby-on-rails-4

有没有办法在Controller concern内部创建变量,如下所示,并使用其他控制器中的@sidebar_menu_item,包括Application Controller

module Menu
    extend ActiveSupport::Concern

    class << self
        def add_sidebar_menu(top_level, menu_class, menu_items, expanded = false)
            @sidebar_menu_item ||= []
            @menu_items ||= []
            @sidebar_menu_item << [top_level, menu_class, @menu_items.concat(menu_items), expanded]
        end
    end
end

1 个答案:

答案 0 :(得分:0)

如果您想让它在所有控制器中都可用,常见的模式是将其添加到ApplicationController并通过继承共享它。

方法add_sidebar_menu提出了@ SG86问的问题。如果它只适用于视图层,为什么不在这里使用帮助器?

因为你在谈论&#34;共享一个变量&#34;我假设你也试图在控制器中存储状态。如果是这样的话,请不要这样做。使用会话,cookie或数据库。