Ruby on rails 控制器中的访问辅助设置器
假设我有一个这样的助手: 还有这样一个控制器:Ruby on rails 控制器中的访问辅助设置器,ruby-on-rails,ruby,Ruby On Rails,Ruby,假设我有一个这样的助手: 还有这样一个控制器: class ApplicationController
class ApplicationController
我想知道为什么控制器中既没有
foo='hello'
,也没有foo=('hello')
调用助手的方法foo=
,但是set\foo'hello'
调用它的方法set\foo
?简单的回答是,它只会在控制器方法中设置一个名为foo
的局部变量
如果调用self.foo='hello'
Ruby将知道应该调用foo方法
值得注意的是,这是Rails视图帮助程序的一种完全错误的用法。简单的回答是,它只会在名为
foo
的控制器方法中设置一个局部变量
如果调用self.foo='hello'
Ruby将知道应该调用foo方法
值得注意的是,这是对Rails视图帮助程序的一种完全错误的使用。感谢您的快速回答。当然,这是错误的,我只是想知道发生了什么。我为你高兴!我喜欢你的猫皮克塔克斯,因为它回答得很快。当然,这是错误的,我只是想知道发生了什么。我为你高兴!我喜欢你的猫照片
module ApplicationHelper
def foo
@foo
end
def set_foo(foo)
@foo = foo
end
def foo=(foo)
@foo = foo
end
end
class ApplicationController < ActionController::Base
include ApplicationHelper
def index
foo = 'hello'
end
end