Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/22.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中的代理是什么?_Ruby On Rails_Ruby_Oop_Delegates - Fatal编程技术网

Ruby on rails ruby中的代理是什么?

Ruby on rails ruby中的代理是什么?,ruby-on-rails,ruby,oop,delegates,Ruby On Rails,Ruby,Oop,Delegates,我一直在浏览rails的源代码,发现有很多提到“委派” 这是做什么用的?它是如何工作的?以下是: 委托(*方法)公共 提供委托类方法,以便轻松地将包含对象的公共方法公开为您自己的方法 class迎宾员NoMethodError:for的未定义方法“再见”# 下面是一些关于它如何与示例一起工作的其他解释: 学员可帮助您保持在LoD内,而无需制动SRP class Greeter < ActiveRecord::Base def hello 'hello' end

我一直在浏览rails的源代码,发现有很多提到“委派”

这是做什么用的?它是如何工作的?

以下是:

委托(*方法)公共

提供委托类方法,以便轻松地将包含对象的公共方法公开为您自己的方法

class迎宾员“你好”
Foo.new.bye#=>NoMethodError:for的未定义方法“再见”#
下面是一些关于它如何与示例一起工作的其他解释:


学员可帮助您保持在LoD内,而无需制动SRP

class Greeter < ActiveRecord::Base
  def hello
    'hello'
  end

  def goodbye
    'goodbye'
  end
end

class Foo < ActiveRecord::Base
  belongs_to :greeter
  delegate :hello, to: :greeter
end

Foo.new.hello   # => "hello"
Foo.new.goodbye # => NoMethodError: undefined method `goodbye' for #<Foo:0x1af30c>