运行 模型上的辅助方法 class 方法
Run a helper method on a model class method
我创建了一个我想 运行 在模型 class 方法上使用的辅助方法,但出现找不到方法的错误。
lib/model_helper
module ModelHelper
def method_i_want_to_use
puts "I want to use this method"
end
end
model/foo
class Foo < ActiveRecord::Base
include ModelHelper
def self.bar
method_i_want_to_use
end
end
这个设置给我一个无方法错误。
您必须 extend
模块而不是 include
。
extend ModelHelper
include
使这些方法可用作 Foo
的实例方法。这意味着,您可以在 Foo
的实例上调用方法 method_i_want_to_use
,而不是在 Foo
本身上。如果你想调用 Foo
本身,那么使用 extend
.
module ModelHelper
def method_i_want_to_use
puts "I want to use this method"
end
end
class Foo
extend ModelHelper
def self.bar
method_i_want_to_use
end
end
Foo.bar
# >> I want to use this method
我创建了一个我想 运行 在模型 class 方法上使用的辅助方法,但出现找不到方法的错误。
lib/model_helper
module ModelHelper
def method_i_want_to_use
puts "I want to use this method"
end
end
model/foo
class Foo < ActiveRecord::Base
include ModelHelper
def self.bar
method_i_want_to_use
end
end
这个设置给我一个无方法错误。
您必须 extend
模块而不是 include
。
extend ModelHelper
include
使这些方法可用作 Foo
的实例方法。这意味着,您可以在 Foo
的实例上调用方法 method_i_want_to_use
,而不是在 Foo
本身上。如果你想调用 Foo
本身,那么使用 extend
.
module ModelHelper
def method_i_want_to_use
puts "I want to use this method"
end
end
class Foo
extend ModelHelper
def self.bar
method_i_want_to_use
end
end
Foo.bar
# >> I want to use this method