2016-08-16 35 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"}>, ...] 
相關問題