Ruby on rails rails,如何在模型中为关系别名?

Ruby on rails rails,如何在模型中为关系别名?,ruby-on-rails,ruby-on-rails-3,activerecord,Ruby On Rails,Ruby On Rails 3,Activerecord,我需要覆盖关系的名称,这是我的模型: class User < ActiveRecord::Base has_many :class_rooms_member_ships has_many :class_rooms has_many :class_rooms, :through=> :class_rooms_member_ships end 有什么想法吗?像这样的想法应该行得通: has_many :classrooms_though_memberships, :

我需要覆盖关系的名称,这是我的模型:

class User < ActiveRecord::Base

  has_many :class_rooms_member_ships

  has_many :class_rooms
  has_many :class_rooms, :through=> :class_rooms_member_ships

end

有什么想法吗?

像这样的想法应该行得通:

has_many :classrooms_though_memberships, :through=> :class_rooms_member_ships, 
                                         :class_name => 'ClassRoom', 
                                         :foreign_key => 'class_room_id'

这应该行。

你检查过了吗?但是,我的情况有点不同,我使用的是has\u许多贯穿问题的标题在某种程度上具有误导性。严格地说,你不是在要求问题中所述的别名。因为这意味着该协会仍然必须以其原始名称访问。相反,您需要一种定义关联名称的方法。标题中问题的答案可能是
alias\u attribute
。我尝试过,但出现了以下错误:ActiveRecord::HasManyThroughSourceAssociationNotFoundError in ClassRoomsMemberShipsController#索引找不到源关联:教室\尽管\成员身份或:教室\尽管\模型教室成员身份成员身份。请尝试“拥有多个:教室成员身份,:至=>:教室成员身份,:来源=>”。它是其中一个吗?确切地说,它工作得很好,似乎源代码丢失了,感谢
class\u name
外键
应该不是必需的,
source
指定了关系名称。
has_many :classrooms_though_memberships, :through=> :class_rooms_member_ships, 
                                         :class_name => 'ClassRoom', 
                                         :foreign_key => 'class_room_id'
has_many :classrooms_though_memberships, :through=> :class_rooms_member_ships, 
                                     :class_name => 'ClassRoom', 
                                     :foreign_key => 'class_room_id',
                                     :source => :class_room