我的Rails 3应用程序中有一个用户模型,它变得越来越大。我想提取一些与订阅计费相关的函数,并将它们放在一个模块中。
这是我第一次尝试编写模块,我尝试的第一件事就是创建一个带有测试方法的最小模块,看它是否有效。
我创建了/lib/modules
目录并将其添加到我的自动加载路径中。然后我在该目录中创建了文件recurly_extensions.rb
。该文件如下所示:
Module RecurlyExtensions
def foobar
"This works."
end
end
然后我将其添加到我的用户模型中:
include RecurlyExtensions
然后我尝试加载rails控制台以测试我是否可以在User实例上调用.foobar
。但是,控制台无法加载。
我收到此错误消息:
/Users/Andrew/.rvm/gems/ruby-1.9.2-p0/gems/activesupport-3.0.5/lib/active_support/dependencies.rb:454:in `load': /Users/Andrew/Rails/fourth_env/lib/modules/recurly_extensions.rb:7: syntax error, unexpected keyword_end, expecting $end (SyntaxError)
所以,它说我在某个地方错过了end
,但我没有看到它。
任何人都可以帮助我了解如何正确设置要包含在Rails模型中的模块吗?谢谢!
答案 0 :(得分:5)
您应该将Module
替换为module