2014-07-14 33 views
3

我執行我的功能,此查詢選擇:ActiveRecord的連接從PostgreSQL函數

ActiveRecord::Base.connection.execute("SELECT * FROM organic_reports('#{@date}');")

該函數返回以下屬性:

name(string), project_id(int), report_id(int), created_at(date), stats(int)

我如何使用ActiveRecord查詢這些結果,就像在正常的Rails模型中一樣?諸如(where,find等)的方法

回答

2

您總是可以使用from來定義查詢的來源,然後您可以像平常一樣使用ActiveRecord查詢界面。

Model.from("organic_reports('#{@date}')").where('...').group('...') 
+0

? – John

+0

'模型'只是一個你想用於這個目的的模型的替身,因爲我對你的應用程序一無所知。我可以使用'FooBarBaz'來代替...'Model'尚未由Rails定義。 –

+0

是的,我認爲,但它仍然不起作用,當我將一個參數傳遞給我的函數時,我說它找不到該列,並且當我沒有在我的函數中發送任何參數時,它是說這個功能不存在。 – John

0

爲什麼不直接爲organic_reports表定義模型?

class OrganicReport < ActiveRecord::Base 
end 

現在是一個Rails模型,就可以正常查詢:我試過,但它不工作,什麼是'model`假設是

OrganicReport.find_by(project_id: 1) 
OrganicReport.where('name LIKE ?', "#{name}") 
+0

'organic_reports'是一個表值函數,而不是表格。他如何用這個函數來調用函數? –