2016-08-16 46 views
0

我有一个复杂原始查询我想要的,而不是通过插值他们有没有办法将params传递给rails中的postgres原始查询?

恩PARAMS:

query = 
    "SELECT id, abbr as code, name 
    FROM states 
    WHERE name IN ('#{params[:state].join("','")}')" 

ActiveRecord::Base.connection.execute(query) 

有没有办法通过PARAMS喜欢的ActiveRecord不

State.where(name: ['Alabama', 'Alaska']) 
+0

我不相信有这样的事情。将此添加为评论而不是答案,因为您无法证明是否定的。但是,您可以使用Arel来表示您的查询 - 它在排列SQL语法方面具有更大的优势。 – jaydel

回答

0

尝试find_by_sql

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

[#<Post:0x36bff9c @attributes={"title"=>"The Cheap Man Buys Twice"}>, ...] 
相关问题