Ruby on rails 3 在Rails3.2.x中,为跨操作使用的实例变量设置默认值的正确方法是什么?
我们希望为呈现的每个页面使用默认名称和描述,除非操作另有定义 正确的方法是什么Ruby on rails 3 在Rails3.2.x中,为跨操作使用的实例变量设置默认值的正确方法是什么?,ruby-on-rails-3,controller,Ruby On Rails 3,Controller,我们希望为呈现的每个页面使用默认名称和描述,除非操作另有定义 正确的方法是什么 我们使用的是Rails 3.2.12。假设您希望在整个站点范围内使用变量,我通常会在ApplicationController上定义一个before\u过滤器: class ApplicationController < ActionController::Base before_filter :intialize_var def initialize_var @var = "some de
我们使用的是Rails 3.2.12。假设您希望在整个站点范围内使用变量,我通常会在ApplicationController上定义一个before\u过滤器:
class ApplicationController < ActionController::Base
before_filter :intialize_var
def initialize_var
@var = "some default"
end
end
class ApplicationController
然后在控制器中手动覆盖该过滤器,如我所愿:
class PeopleController < ApplicationController
def initialize_var
@var = 'parents just dont understand'
end
end
class PeopleController
您只需在视图中使用
@var
,就可以了。谢谢,我想如果这只适用于一个控制器,只需在该控制器中使用before_过滤器?哦,对于单个控制器,我会使用before过滤器,并在任何需要自定义值的操作中覆盖@var
。此解决方案假设您正在应用程序布局(或类似的视图模板/部分)中使用来自可能多个控制器(或所有控制器)的@var
。