0

我对 Rails 很陌生,想在我的模型中选择对象子集的方式做一些事情。例如,我有一个项目模型,并希望根据与另一个模型组织的某些连接表来选择一些项目子集。

我最初的想法是在 projects_helper.rb 中创建一些辅助方法,该方法将执行适当的查找以确定要返回的项目。

另一个想法是使用这里描述的范围(http://apidock.com/rails/ActiveRecord/Scoping/Named/ClassMethods/scope)。

两者似乎都在功能上完成了目标,但实现这一目标的最佳实践方式是什么?关于可以访问这些方法中的每一个的内容是否存在关键区别?

谢谢!

4

1 回答 1

0

取决于查询“询问”问题的观点。

如果您要求组织的项目,您可以先选择组织,然后显示组织.项目。除了适当地链接模型(组织 has_many 项目,项目属于_to 组织)并将组织 ID 作为项目表中的外键之外,没有什么比这更有趣的了。

如果您系统中的组织是动态数量,我不确定命名范围是否合适。如果组织列表经常更改,您不希望为每个指定范围。

于 2013-08-13T03:12:53.443 回答