xer*_*gun 3 ruby activerecord module ruby-on-rails helper
我创建了一个帮助器方法,我想在模型类方法上运行并获取一个找不到方法的错误.
LIB/model_helper
module ModelHelper
def method_i_want_to_use
puts "I want to use this method"
end
end
Run Code Online (Sandbox Code Playgroud)
模型/富
class Foo < ActiveRecord::Base
include ModelHelper
def self.bar
method_i_want_to_use
end
end
Run Code Online (Sandbox Code Playgroud)
此设置为我提供了无方法错误.
你必须extend使用模块而不是include.
extend ModelHelper
Run Code Online (Sandbox Code Playgroud)
include使方法可用作实例方法Foo.这意味着,您可以method_i_want_to_use在实例上调用该方法Foo,而不是在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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1025 次 |
| 最近记录: |