[英]Namespace module class methods undefined
我正在出于命名原因尝试使用模块。 我在/lib/reports/stripe.rb
Rails应用程序中有此文件。
module Reports
module Stripe
def self.foo
puts 'i am foo'
end
end
end
在我的控制台中,我希望能够通过Reports::Stripe.foo
或Reports::Stripe::foo
调用Reports::Stripe::foo
,但是出现错误
NoMethodError: undefined method `foo' for Reports::Stripe:Module
我究竟做错了什么? 也可以随时告诉我是否有更好的方法来组织位置和命名空间。
红宝石中的所有方法调用都使用.
句法。 甚至“模块”方法。
> Reports::Stripe.foo
i am foo
如果您在启动rails控制台后添加了方法,则可能会收到错误NoMethodError: undefined method 'foo' for Reports::Stripe:Module
。 尝试重新启动控制台或使用load'reports load 'reports/stripe'
重新加载文件。
该文件实际上位于/lib/reports/stripe/stripe.rb
。 这是我早些时候犯的一个错误,但忘了修复。 将文件移至/lib/reports/stripe.rb
解决了该问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.