Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何在Rails中使用postgresql函数_Ruby On Rails_Postgresql - Fatal编程技术网

Ruby on rails 如何在Rails中使用postgresql函数

Ruby on rails 如何在Rails中使用postgresql函数,ruby-on-rails,postgresql,Ruby On Rails,Postgresql,我在postgres中有一个带有出生日期的表,希望使用postgres age函数返回年龄,而不是在Rails中计算年龄(这是一个简单的示例,我希望在postgres中进行更复杂的计算) 从博士后那里得到年龄的最好方法是什么?我的其他记录最好作为标准,而不必修改每一个选择 编辑: 我决定使用视图,因为: 我的数据库将被rails以外的其他应用程序使用,我想定义所有应用程序都可以使用的通用函数 我想通过多个应用程序控制对数据的访问 它会从应用程序服务器带走一些处理过程 如果我使用大量的计算字段,它

我在postgres中有一个带有出生日期的表,希望使用postgres age函数返回年龄,而不是在Rails中计算年龄(这是一个简单的示例,我希望在postgres中进行更复杂的计算)

从博士后那里得到年龄的最好方法是什么?我的其他记录最好作为标准,而不必修改每一个选择

编辑:

我决定使用视图,因为:

  • 我的数据库将被rails以外的其他应用程序使用,我想定义所有应用程序都可以使用的通用函数
  • 我想通过多个应用程序控制对数据的访问
  • 它会从应用程序服务器带走一些处理过程
  • 如果我使用大量的计算字段,它的可伸缩性会更好
  • 是的,这将添加一个方法,
    age
    ,该方法以前在
    Person

    您还可以将新方法别名为函数名以外的其他名称:

    people = Person.select('*, age(date_of_birth) as foo')
    people.each { |person| puts person.foo }
    

    这方面的技术也可能有用。不过,你仍然需要在ActiveRecord周围工作,认为它无所不知。同样,带有
    select
    调用的默认作用域可能会(也可能不会)有帮助。@muistooshort,谢谢你,请查看我的帖子更新。谢谢你的回复,这回答了我的直接问题,但是我决定使用不同的解决方案-请查看对我原始帖子的编辑。
    people = Person.select('*, age(date_of_birth) as foo')
    people.each { |person| puts person.foo }