所以,我已经阅读了所有内容:
但我不能让它工作。这是我的情况:
我的模型有一个calc_distance(place1, place2)
方法和一个属性places
,User
我想calc_total_distance
在User
模型中定义一个方法。
我想calc_distance
通过一个库访问该方法,Utils
而不是在使用它时加载整个实用程序。
在/lib/utils.rb
module Utils
def calc_distance a, b
# Blah blah blah
end
end
在/config/application.rb
我有:
config.autoload_paths += %W(#{config.root}/lib)
在控制台中,我可以这样做
include Utils
并且calc_distance(place1, place2)
它可以工作。但Utils::calc_distance(place1 place2)
不起作用...
额外的问题是我可以这样做吗?
然后在我的User.rb
模型中:
def get_total_distance
# Blah blah blah
dist += calc_distance(place1, place2)
# Blah blah blah
end
还给我undefined method 'include' for #<User:0x00000006368278>
和
def get_total_distance
# Blah blah blah
dist += Utils::calc_distance(place1, place2)
# Blah blah blah
end
还给我undefined method 'calc_distance' for Utils:Module
我怎么能做到这一点,知道我真的更喜欢第二种方法(据我估计,它不会加载整个 Utils 模块......