为什么在创建多对多关系时需要has_many和has_many ...

时间:2015-02-17 17:02:17

标签: ruby-on-rails many-to-many

我有一个用户和一个角色模型,我正在努力建立一个多对多的关系。

为什么我需要这两行?

has_many :user_roles
has_many :users, through: :user_roles

第二行是否意味着第一行?第二行何时不代表第一行?为什么Rails只做它的神奇之物并让第二个暗示第一个?

1 个答案:

答案 0 :(得分:0)

class Role < ActiveRecord::Base
  has_many :user_roles
  has_many :users, through: :user_roles

允许您绕过中间步骤。如果您包含@role.users,则through :user_roles是有效代码。否则,您需要使用@role.user_roles.users来获取相同的列表。