我是Rails的新手,并且已经在侧面项目中学习了Rails 3。有时我想编写一些不属于我的模型或我的控制器的代码 - 与模型和/或控制器相关的问题,但我不想将其中任何一个与实现细节混为一谈我在写什么。
例如:我正在构建的项目使用Janrain的授权系统(RPX),因此我可以获得oauth,openid,google等授权。他们提供了很多很好的API代码,所以我不必自己编写。此代码不属于登录控制器或用户模块。它是授权代码,因此登录控制器需要访问它,但它不是该控制器的一部分。
你把这段代码放在哪里?它不是型号代码。它不属于控制器。
...提前谢谢。
答案 0 :(得分:5)
您应该可以在根目录中使用lib
文件夹(除非在Rails 3中更改了它)。
您可以在没有require
语句的情况下从那里引用类。
答案 1 :(得分:4)
'常见'的建议是说'把这些东西放进lib
'。但还有其他地方需要考虑:
考虑在app
中创建一个子文件夹。一些示例包括:app/workers
,app/observers
,app/sweepers
或任何对您有意义的内容。
考虑将config/initializers
用于初始化代码。
最后,只有在上述内容没有意义的情况下,您才能使用lib
。不要忘记你可以使用子文件夹来防止它过于垃圾。
而且,一旦你开始工作和抛光,考虑将你的代码提取到gem中。例如,参见Creating a New Gem with Bundler上的RailsCast。