锁定老帖子 主题:rails中分模块开发。
精华帖 (1) :: 良好帖 (4) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2009-09-18
最后修改:2010-02-18
嗯,其实这是一个个人空间,blog只是其中的一个模块,我写的时候就在想,模块一多出来的话,那model目录下的model数量不是很多?对了,看过的rails书籍、guides等材料怎么都没有提到过如何划分模块呢?JE上也许有吧,于是搜索了一下,找到这个:http://www.iteye.com/topic/166325 其中 magicgod 写道 2.0已经有了命名空间,例如:
ruby script/generate model Admin::User 于是我就按照这种方法给model分了模块,像这样 ruby script/generate model Blog::Topic title:string content:text 但是这样会有一个问题,生成的migration中,table名会变成blog_topic,而不是topic,这样在持久化操作的时候rails会找不到topic表。如果手动修改migration的话,一来减少了coc的好处,第二,它还是会有问题:运行一下自动生成的那个unittest,rails会报告找不到blog_topic表……需要手动修改fixtures目录中那些yml文件名,把前面的blog_前缀给删除掉。 看来rails对分模块的开发还不能很好的支持呀,大家平时是怎么做的?不会很少划分模块吧?JE上相关的讨论好像就那一个帖子。 对了,还有其中 liusong1111 写道 我们的controller组织在多层module/目录下,把model全部放在/models下,效果不错。
我有疑问,controller相对于model来说是更粗粒度的,假如给controller分模块了,那model为什么不分?我自己的想法是把model给分了,controller直接放在controller目录下。比如说一个个人空间的blog模块,我要写的话就只有一个BlogsController,和若干个model:Topic,Tag,Comment。每个功能模块对应一个controller我想应该是能做到的,所以我觉得对controller再划分模块好像反而没什么必要。 我想请教一下,大家平时都是怎么组织自己项目中的代码? =========================================== 在“相关帖子”中又找到一个帖子: http://www.iteye.com/topic/222859 yangzhihuan的方法不错,比起手动修改生成的那些东西好。 yangzhihuan 写道 我的解决方法是:
class Blog::Article < ActiveRecord::Base set_table_name :blog_article end 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2009-09-18
我估计项目做复杂了,会往engine的模式发展,每个模块都是个子应用(mini app)
对这话题感兴趣但没实践过,留位围观。 |
|
返回顶楼 | |
发表时间:2009-09-18
听说rails3支持这个。
|
|
返回顶楼 | |
发表时间:2009-09-18
module Blog class Article < ActiveRecord::Base end end 一直都这么做,不会有 table name 的问题 |
|
返回顶楼 | |
发表时间:2009-09-18
rainchen 写道 我估计项目做复杂了,会往engine的模式发展,每个模块都是个子应用(mini app)
对这话题感兴趣但没实践过,留位围观。 推荐用engine划分模块,而且通用的模块还可以复用 |
|
返回顶楼 | |
发表时间:2009-09-19
我个人觉得像django这个目录分发清晰的,同一业务相关的controller,model[,view]各自放一目录,
而不是像rails这种,所有controller/model放一controllers/models目录下 |
|
返回顶楼 | |
发表时间:2009-09-19
我对resource的controller比较迷惑,每个resource肯定有一个controller,其他的controller按照什么来划分呢
|
|
返回顶楼 | |
发表时间:2009-09-19
one23 写道 我个人觉得像django这个目录分发清晰的,同一业务相关的controller,model[,view]各自放一目录,
而不是像rails这种,所有controller/model放一controllers/models目录下 你真的不知道rails早八年就有了namespace ? |
|
返回顶楼 | |
发表时间:2009-09-19
samsam 写道 我对resource的controller比较迷惑,每个resource肯定有一个controller,其他的controller按照什么来划分呢
为什么其他的controller不能化为其他的resource? |
|
返回顶楼 | |
发表时间:2009-09-19
最后修改:2009-09-19
下一站,火星 写道 one23 写道 我个人觉得像django这个目录分发清晰的,同一业务相关的controller,model[,view]各自放一目录,
而不是像rails这种,所有controller/model放一controllers/models目录下 你真的不知道rails早八年就有了namespace ? 恩,刚才重新按模型整了下目录,删除了controllers,models目录试了下,设了namespace,确实可以 |
|
返回顶楼 | |