首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >大型项目更好的Rails文件结构?

大型项目更好的Rails文件结构?
EN

Stack Overflow用户
提问于 2013-09-27 18:06:58
回答 3查看 571关注 0票数 0

我似乎总是被40个不同的模型困在相同的文件夹中,比如post.rb、post_comment.rb、post_rating.rb等。有没有办法在rails中制作类似模块的东西,用posts把所有东西都放在一个单独的目录中呢?(这个目录也可以包括不同的控制器和视图)。

Rails引擎看起来很有希望,但也许我还错过了什么?

我认为,这将使项目更容易概述和进入作为一个新的合作者。

如果你有反对意见,请告诉我!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-09-27 18:33:48

我使用名称空间。

当您运行命令rails g scaffold blog/post时,它将在博客命名空间下生成Post。

app/models/blog.rb

代码语言:javascript
复制
module Blog
  def self.table_name_prefix
    'blog_'
  end
end

app/model/blog/post.rb

代码语言:javascript
复制
class Blog::Post < ActiveRecord::Base
  has_and_belongs_to_many :categories
end

app/model/blog/models.app

代码语言:javascript
复制
class Blog::Category < ActiveRecord::Base
  has_and_belongs_to_many :posts
end
票数 3
EN

Stack Overflow用户

发布于 2013-09-27 18:46:23

你的模特好像有点问题。

评论就是评论。一篇文章可以有评论,一张照片可以有评论。但是,拥有像post_comment、photo_comment这样的模型肯定不是一个好的实践。嗯,我只看到有疑问的"post_comment“,但我想你是出于这样的原因来命名它的。

您将忙于跟踪和工作这些具有类似功能的模型,然后是它们的控制器、视图。"post_rating“等也是如此。

我不会说40+模型太多了。但是看到新的Basecamp有50+模型,Dispora有没有子文件夹的30+模型,也许值得对应用程序的架构进行回顾以减少一些。

如果您计划使用“注释”,“评级”对其他如“照片”,您可以直接使用名称,并计划关联,多态,模块干燥代码。

票数 1
EN

Stack Overflow用户

发布于 2013-09-27 18:18:42

例如,您可以将所有post_*.rb模型放置到posts文件夹中。确保用Posts::Post* ie class Posts::PostRating < ActiveRecord::Base重命名文件夹中的每个模型

我认为,与更新代码库中的所有模型的类引用相比,更容易的方法是将它们全部放在models目录中,并处理臃肿的models目录所带来的痛苦。

有关读数:

  • ActiveRecord: haz名称空间可以吗?
  • 命名空间模型
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19057321

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档