在视图中能否引用 Ruby 类变量?
更常见的方法是将类变量包装在一个帮助方法中:
# in /app/controllers/foo_controller.rb:
class FooController < ApplicationController
@@bar = 'baz'
def my_action
end
helper_method :bar
def bar
@@bar
end
end
# in /app/views/foo/my_action.html.erb:
It might be a class variable, or it might not, but bar is "<%= bar -%>."
很遗憾,类(@@variables
)不会被复制到视图中。但是您仍然可以通过以下方式访问它们:
controller.instance_eval{@@variable}
或者
@controller.instance_eval{@@variable}
或者其他不那么恶心的东西。
使用Rails,99.9%的人永远不应该这样做,或者至少我想不出一个好的理由。
@bar = @@bar ||= some_expensive_call