我正在为我的Rails应用程序写创业板,它计算一些东西,并使用类和模块。
这是文件结构。
root
->lib
-->finances
--->version.rb
--->finances.rb
--->calculator
----->formulas.rb
--->finalize
---->schedule.rb
-->finances.rb现在root/lib/finances.rb
require "finances/version"
require "finances/finances"
require "finances/finalize/schedule"
require "finances/calculator/formulas"root/lib/finances/calculator/formulas.rb
module Calculator
module Formulas
def method
end
end
endroot/lib/finances/finalize/schedule.rb
module Finalize
class Schedule
include ::Calculator::Formulas
end
end但我得到了uninitialized constant Calculator (NameError)
如果我试着用
::Calculator::Formulas.method它抛出“计算器::公式:模型”的NoMethodError (undefined method方法):
我到底做错了什么。我似乎无法解决这个问题。有人能帮上忙吗。
发布于 2014-10-14 10:25:48
您尝试使用method作为Formulas‘模块方法’,而将它定义为常规实例方法。因此,应该在RepaymentSchedule实例上调用它:
rs = RepaymentSchedule.new
rs.method此外,您还需要确保您的装载顺序是正确的。在这里,您应该在加载require类之前包含Formulas模块的Formulas文件,否则会得到未初始化的常量错误。
https://stackoverflow.com/questions/26358457
复制相似问题