11

リレーションの名前をオーバーライドする必要があります。これが私のモデルです。

class User < ActiveRecord::Base

  has_many :class_rooms_member_ships

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

end

今、取得したいときに使用する別の名前が必要ですclass_rooms :through=> :class_rooms_member_ships

どうすればこれを達成できますか:

user.class_rooms
user.class_rooms_through

何か案が ?

4

2 に答える 2

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

これはうまくいくはずです。

于 2012-05-31T10:19:42.063 に答える
0

このようなものが動作するはずです:

has_many :classrooms_though_memberships, :through=> :class_rooms_member_ships, 
                                         :class_name => 'ClassRoom', 
                                         :foreign_key => 'class_room_id'
于 2012-05-31T05:11:11.510 に答える