Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 控制器中的访问辅助设置器_Ruby On Rails_Ruby - Fatal编程技术网

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