我有一个Padrino项目,包含多个应用程序。例如:
将所有未修改的模型放入一个目录在我看来就像一团糟。所以我想把它们命名为:
但这看起来很奇怪,会产生很多额外的打字。
你怎么看?忽略命名空间并希望不会遇到命名冲突(例如Blog app => Error的“类别”模型)或者我应该将应用名称添加到每个模型中是不错的风格?提前致谢。
干杯马克
答案 0 :(得分:1)
我使用模块作为名称空间,即:
module BlogModels
class Category
end
end
并且与dm一起工作得非常好,因为我已经命名为table_name
,顺便说一下BlogCategory
对我来说也很好。
答案 1 :(得分:0)
我找到了一种合理的方法来命名Mongoid中的模型并保持开销很小。
我将这些模型命名为:BlogPost,BlogComment,BlogCategory
在模型中我使用了class_name和inverse_of:
class BlogPost
include Mongoid::Document
# ... lots of stuff ommitted
has_many :comments, class_name: 'BlogComment', inverse_of: :post
end
class BlogComment
include Mongoid::Document
# ... lots of stuff ommitted
belongs_to :post, class_name: 'BlogPost', inverse_of: :comments
end
通过以下方式访问:
post = BlogPost.first
post.comments.first # get comments
BlogComment.first.post # get related post
这使访问链保持简短,然后更好:
post = BlogPost.first
post.blog_comments.first # get comments
BlogComment.first.blog_post # get related post