【问题标题】:Rails Controller: Is it good practice to define controller for associations?Rails Controller:为关联定义控制器是一种好习惯吗?
【发布时间】:2011-03-18 11:22:12
【问题描述】:

假设我有映射表 map_user_roles。我已经定义了模型角色和用户。两者通过关系 has_and_belongs_to_many 相互关联。当然,在 rails 中为映射表定义模型是没有意义的。 我已经分别为用户和角色的 crud 操作定义了 users_controller 和 roles_controller。

对于用户角色的关联,我应该怎么做?我应该定义像 user_roles_controller 这样的单独控制器,还是应该在角色和用户控制器中进行修改(如果是这样怎么做)? 请建议,什么是好的做法。示例和良好的链接将有很大帮助 感谢您抽出时间。

【问题讨论】:

  • 控制器应该做什么?
  • 它应该对用户角色关联执行创建、删除、检索操作

标签: ruby-on-rails-3 model controller model-associations


【解决方案1】:

我看不出使用现有的UsersControllerRolesController 无法实现的单独的关联控制器会提供什么。另外,请注意,有时为映射表定义模型确实有意义,这就是 has_many :through 关联的用途。如果您需要针对连接模型存储额外的属性,则应该使用它。

【讨论】:

  • 请给出一些代码描述,说明我应该如何将用户角色集合作为参数检索并在模型上更新。
  • 我在需要的地方使用它。事实上,当我为映射表定义模型时(以防一些额外的属性),我已经为同一模型上的 CRUD 定义了单独的控制器。
  • @Maddy.Shik 您不需要直接创建映射表模型。相反,您应该使用collection.buildcollection.create 方法通过关联来创建它。见guides.rubyonrails.org/association_basics.html
猜你喜欢
  • 2018-02-25
  • 2011-10-31
  • 2016-06-09
  • 2011-03-02
  • 2018-11-17
  • 2013-03-30
  • 1970-01-01
  • 1970-01-01
  • 2014-09-22
相关资源
最近更新 更多