【问题标题】:Ruby on Rails: Scope vs Helper MethodRuby on Rails:作用域与辅助方法
【发布时间】:2013-08-14 12:29:58
【问题描述】:

我对 Rails 还是很陌生,想在我的模型中选择对象的子集。例如,我有一个 Project 模型,并希望根据与另一个模型 Organizations 的某个连接表来选择项目的一些子集。

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

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

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

谢谢!

【问题讨论】:

标签: ruby-on-rails scope helper


【解决方案1】:

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

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

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

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2023-03-09
  • 1970-01-01
  • 2022-01-18
  • 2013-09-16
  • 1970-01-01
  • 2011-03-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多