Ruby on Rails:范围与助手方法

时间:2013-08-13 02:42:24

标签: ruby-on-rails scope helper

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

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

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

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

谢谢!

1 个答案:

答案 0 :(得分:0)

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

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

如果系统中的组织是动态数量,我不确定命名范围是否合适。如果组织列表经常发生变化,您不希望每个都有一个命名范围。