2011-05-17 58 views
2

我有一个用户模型在我的Rails 3应用程序变得巨大。我想提取一系列与订阅账单相关的功能,并将它们放在一个模块中。Rails 3:如何将模块添加到模型?

这是我第一次试图编写一个模块,我尝试的第一件事就是用测试方法创建一个最小模块,看看它是否工作。

我创建了/lib/modules目录并将其添加到我的自动加载路径中。然后我在该目录中创建了文件recurly_extensions.rb。该文件是这样的:

Module RecurlyExtensions 

    def foobar 
     "This works." 
    end 

end 

然后我说这我的用户模型:

include RecurlyExtensions 

然后我试图加载轨控制台来测试,如果我能在用户实例调用.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模型中?谢谢!

+2

是什么'Module'取代Module?它应该是'module' – apneadiving 2011-05-17 19:50:21

+0

哦,大声哭泣,这就是所有错误。啧!嘿,你为什么不张贴这个答案,以便我能接受它? – Andrew 2011-05-17 19:53:25

+0

只是自己张贴 – 2011-05-17 19:54:06

回答

5

你应该module

+0

修复了一切。谢谢! – Andrew 2011-05-17 20:02:17