如何使用活动记录查询执行此原始SQL查询?

时间:2016-03-29 22:06:50

标签: ruby-on-rails activerecord

使用活动记录查询如何进行以下sql查询?

sql = "select * from events 
inner join places on events.place_id = places.id 
inner join users on events.user_id = users.id"
where events.id = #{event_id} 

我试过

Event.joins(:user, :place).includes(:user, place).find(event_id)

这几乎可以实现我想要的选择事件。*而不是选择

然后我尝试了

Event.joins(:user, :place).select('*.*')

然而,这会返回一个ActiveRelation对象,我不知道如何从中获取结果。

我也试过

Event.joins(:user, :place).find(event_id) 

这会引发错误。

ActiveRecord::StatementInvalid: PG::SyntaxError: ERROR:  syntax error at or near "."

不确定还有什么可以尝试。我想做的不可能吗?

1 个答案:

答案 0 :(得分:0)

Event.joins(:user, :place).where("events.id = ?", event_id).select("events.*, users.*, places.*")