Mysql Rails 3在两个表之间进行查询

Mysql Rails 3在两个表之间进行查询,mysql,ruby-on-rails,Mysql,Ruby On Rails,我正在尝试查找与特定事件相关的所有学习者。我打电话给那些登记者。现在,我的控制器中有: @registrants = EventConnection.where(event_id: @event.id, connectiontype: 6) @registrants = EventConnection.where(event_id: @event.id, :connection_type => 6).joins(:learner).select(:name) …在我看来,我正在做: &

我正在尝试查找与特定
事件相关的所有
学习者
。我打电话给那些登记者。现在,我的控制器中有:

@registrants = EventConnection.where(event_id: @event.id, connectiontype: 6)
@registrants = EventConnection.where(event_id: @event.id, :connection_type => 6).joins(:learner).select(:name)
…在我看来,我正在做:

<% @registrants.each do |r| %>
   <%= Learner.find(r.learner.id).name %>
<% end %>

我希望来自控制器的查询返回一组学习者,这样我就可以执行以下操作:

<% @registrants.each do |r| %>
   <%= r.name %>
<% end %>

提前谢谢

编辑 学员:有很多活动联系吗

EventConnection属于:学习者写下以下内容:

@registrants = EventConnection.include(:learner)
               .where(event_id: @event.id, connectiontype: 6)
@registrants = EventConnection.include(:learner)
               .where(event_id: @event.id, connectiontype: 6)
现在,您可以执行以下操作:

<% @registrants.each do |r| %>
   <%= r.learner.name %>
<% end %>


阅读此概念,将控制器代码更新为

@registrants = EventConnection.where(event_id: @event.id, connectiontype: 6).includes(:learners)
查看代码,列出每个注册人的所有相关学习者

<% @registrants.each do |r| %>
   <% r.learners.each do |l|
     <%= l.name %>
   <% end %>
<% end %> 

在控制器中:

@registrants = EventConnection.where(event_id: @event.id, connectiontype: 6)
@registrants = EventConnection.where(event_id: @event.id, :connection_type => 6).joins(:learner).select(:name)
查看:

<% @registrants.each do |r| %>
   <%= r.name %>
<% end %>

您可以使用访问将列与单个(.)

对于此加载项EventConnection.rb

belongs_to :learner 
delegate :name, :to => :learner , :prefix => true
以便您可以在视图中使用

<% @registrants.each do |r| %>
   <%= r.learner_name %>
<% end %>
学习者

has_many :event_connections
has_many :events, through: :event_connections
事件连接

belongs_to :event
belongs_to :learner
然后,您的查询将变成:

@registrants = EventConnection.includes(:event => :learners).where(event_id: @event.id, connectiontype: 6)

提及表之间的关联event has_many learners?@user123 correct
has_many:learners,through::event_connections
,其中一个错误是“没有将符号隐式转换为字符串”