我在Postgres中创建了一个函数,想从我的Rails代码中调用它。最佳方法是什么?是否有可用的ActiveRecord方法可以使用?或者我需要像Arel.sql
一样使用SQL语句吗?
我在Postgres中创建了一个函数,想从我的Rails代码中调用它。最佳方法是什么?是否有可用的ActiveRecord方法可以使用?或者我需要像Arel.sql
一样使用SQL语句吗?
ActiveRecord中没有特殊的方法,您需要使用SQL语句来操作。您可以尝试以下代码:
Post.connection.execute("select version();").first
=> {"version"=>"PostgreSQL 10.5 on x86_64-apple-darwin17.7.0, compiled by Apple LLVM version 9.1.0 (clang-902.0.39.2), 64-bit"}
这将按行返回一个哈希表,其中键是列名,值是相应的值。因此,对于这个特定的示例,我知道它只会返回一行,所以我使用first
立即检索第一行。如果您只想立即检索版本,则可以编写
version = Post.connection.execute("select version();").first.values.first
=> "PostgreSQL 10.5 on x86_64-apple-darwin17.7.0, compiled by Apple LLVM version 9.1.0 (clang-902.0.39.2), 64-bit"
Post.connection.execute("select version();").first
。 - nathanvdafirst
并不足够,因为它返回了一个哈希,我需要从中提取我的值;所以我在first
中添加了.values.first
,因为只返回了一个值。您想将其发布为您的答案吗? - Keith Bennett