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 correcthas_many:learners,through::event_connections
,其中一个错误是“没有将符号隐式转换为字符串”