是否可以在视图中引用ruby类变量?
答案 0 :(得分:3)
不幸的是,类(@@variables
)不会复制到视图中。您仍然可以通过以下方式获取它们:
controller.instance_eval{@@variable}
或
@controller.instance_eval{@@variable}
或其他不太重要的东西。
使用Rails,100人中有99.9人永远不应该这样做,或者至少我想不出一个好理由。
答案 1 :(得分:1)
罗森的答案很好,因为它隐藏了什么样的变量“bar”,但如果你有很多这样的变量,那么定义一堆辅助方法的需求是没有吸引力的。我在我的控制器中使用以下内容:
@bar = @@bar ||= some_expensive_call
这样,“some_expensive_call”只进行一次,结果被复制到每个实例的@bar中(因此视图可以将其作为@bar访问)。