ActiveRecord连接适配器返回值

时间:2016-08-17 12:49:40

标签: ruby-on-rails json ruby activerecord

我有一个更复杂的sql-query,我决定使用普通sql而不是用AR写它。我将sql语句包装在ActiveRecord :: Base.connection.exec_query`中。

该方法基本上如下:

def sc_agent
  return ActiveRecord::Base.connection.exec_query("SQL").as_json
end

序列化程序as_json为我提供了一个带有json字符串的json哈希。所以id现在也是字符串

{"id":"123","age":"99"}

在我使用AR的标准查询中,我收到的很好  格式化的json与正确的类型。

直接使用ConnectionAdapter时,如何保留所有值的正确类型?谢谢你的一切!

1 个答案:

答案 0 :(得分:1)

使用find_by_sql方法。

示例:Post.find_by_sql ["SELECT title FROM posts WHERE author = ? AND created > ?", author_id, start_date]

更多信息在这里:http://api.rubyonrails.org/classes/ActiveRecord/Querying.html