我有两个模型Event
和User
以及两个:through
关联模型 - event_member
和event_organizer
。我创建了一些关联,并且在常规使用中它可以工作,但在事件和事件管理器页面的rails管理员中我有一个错误:
RailsAdmin中的ActiveRecord :: AssociationNotFoundError
协会名为' event'在EventOrganizer上找不到
当我更改关联时,我开始得到其他RailsAdmin错误
schema.rb:
#event_members
t.bigint "member_id"
t.bigint "event_id"
#event_organizers
t.bigint "organizer_id"
t.bigint "organized_event_id"
在模型中我有下一个代码:
事件
has_many :event_members
has_many :members, through: :event_members, source: :user
has_many :event_organizers
has_many :organizer, through: :event_organizers, source: :user
用户
has_many :event_members, foreign_key: :member_id
has_many :events, through: :event_members
has_many :event_organizers, foreign_key: :organizer_id
has_many :events, through: :event_organizers, source: :user
EventOrganizer
belongs_to :user, foreign_key: :organizer_id
belongs_to :event, foreign_key: :organized_event_id
EventMember
belongs_to :user, foreign_key: :member_id
belongs_to :event
答案 0 :(得分:0)
has_many :events
中有User
的两个定义,应更改其名称以使其唯一且有意义。
答案 1 :(得分:0)
这是错误范围的虚拟问题,它是:
has_many :ogranized_event, through: :event_organizers, source: :event
必须:
has_many :event_organized, through: :event_organizers, source: :organized_event