我正在寻找一些可以让我像Mongoid那样做的事情:
class Artist
include Mongoid::Document
field :name, type: String
end
基本上,包含一个模块并使用其中声明的方法。但是我收到以下错误:
undefined method `method_name'
以下是模块代码:
module Mod
def method_name # or self.method_name results the same
end
end
这是类代码:
class Klass
include Mod
method_name 'param'
end
我的红宝石版本为2.1.2
编辑:
我在模块中使用了它,它完美地运行:
def self.included(target)
target.extend self
end
答案 0 :(得分:1)
您需要extend
而不是include
:
#!/usr/bin/env ruby
module Task
def method_name(*args)
end
end
class Klass
extend Task
method_name :param
end