我对Rails框架比较陌生,我不确定我采用的方法是否是最有效/最有效的方法,或者我是否正在遵循Rails约定。
我遇到的基本问题是我的应用程序将具有公司模型和各种设置类别(不可由用户编辑)。每个公司都可以成为多个类别的一部分。从其他例子来看,我的理解是我应该将关系设置为:
但是,由于不会有那么多类别(< 10),并且由于它们不会被用户更改/可编辑/添加/删除,我不确定是否需要创建一个全新的表对于类别然后加入公司?有没有更好的方法在我失踪的Rails中做到这一点?提前致谢!
答案 0 :(得分:0)
即使你可能只有10个类别左右,但我认为将它放在自己的表中仍然可以。设置关系可以为您提供编程能力,以便在您需要时检索与单个类别相关的公司,反之亦然,而无需自己重建查询。
将这些内容保存在数据库中的简单示例:
# Get all companies under a specific Category
@category = Category.find(1)
@companies = @category.companies
如果你问我,这很简单。如果您将来在表中添加其他类别,则无需编写任何新代码即可使其正常工作。
另一件事,我会使用has_many :through
代替has_and_belongs_to_many
(habtm)结账,因为随着您的应用程序变大,habtm可能会导致无法预料的问题。这篇文章更深入地讨论了这个问题:Why You Don’t Need Has_and_belongs_to_many Relationships。不是说你不能使用它(如果适合的话),但通常最好注意潜在的问题,这样你就可以为你和你的应用做出正确的决定。