2014-10-30 74 views
0

运行以下查询的rails方式是什么?我找到了所有列都没有被选中的答案。例如查询如下:下面简单加入多栏的Rails方式

select e.id, e.title, u.first_name,u.picture from events e 
inner join users u 
on e.created_by = u.id 
where u.id = 2 

我的模型给出:

class Event < ActiveRecord::Base 
    belongs_to:user 
end 

UPDATE我想下面这INFACT形成了查询,但它给了另一个错误:

@event = Event.joins(' INNER JOIN users on users.id = events.created_by') 

no implicit conversion of String into Integer

它在模板中给出以下行:

<h3><strong><%= @event["id"] %></strong></h3> 
+0

更新后:@event是一个数组,而不是一个哈希(不管,如果你只有在这一个记录) – Fer 2014-10-30 08:00:31

回答

1

试试这个

Event.joins(:users).where("users.id = 2").select('events.id, events.title, users.first_name, users.picture') 
+0

它不工作,因为它不是在'加盟ID“,但在'events.created_by'上。我尝试了这个,但给了event.id的类型转换错误 '@event = Event.joins('INNER JOIN users on users.id = events.created_by')' ps:Qs也更新了 – Volatil3 2014-10-30 07:18:35

+0

加入I返回查询'SELECT“事件”。* FROM“events”INNER JOIN用户对users.id = events.created_by',但在模板中我得到:**没有将字符串隐式转换为整数** – Volatil3 2014-10-30 07:24:15