我创建了一个Postgres函数,用于执行涉及多个表连接的复杂查询,所有这些表都必须由动态日期字段进行过滤。
该函数运行完美,使我能够执行像"SELECT * FROM trail_for_date('2014-01-01')"
这样的查询,并返回一个表。
以下是Postgres文档中关于函数的简化示例:
CREATE FUNCTION sum_n_product_with_tab (x int)
RETURNS TABLE(sum int, product int) AS $$
SELECT $1 + tab.y, $1 * tab.y FROM tab;
$$ LANGUAGE SQL;
我该如何将这个返回表格作为Rails/Ruby模型使用,并使函数的参数具有动态性?
类似于以下代码(显然不起作用):
class SimplifiedExample < ActiveRecord::Base
self.table_name = 'sum_n_product_with_tab(:dynamic_input)'
end
Model.select(Arel::Nodes::NamedFunction.new('sum_n_product_with_tab', 6)).to_sql
。 - Andy Henson