更改 has_and_belongs_to_many 的属性名称

Cha*_*Dev 2 ruby-on-rails rails-activerecord

是否可以更改 has_and_belongs_to_many 关联的属性名称?就像是

  class User
    has_and_belongs_to_many :users, as: :friends
Run Code Online (Sandbox Code Playgroud)

以便 User.friends 返回其他用户而不是 User.users?

Eye*_*dic 6

你可以做

has_and_belongs_to_many :friends, class_name: 'User'
Run Code Online (Sandbox Code Playgroud)

您可能需要指定连接表,具体取决于您的设置

has_and_belongs_to_many :friends, class_name: 'User', join_table: '...'
Run Code Online (Sandbox Code Playgroud)

可以在这里阅读有关所有这些的更多信息has_and_belongs_to_many