Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/60.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.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 3:在查询中包含SQL函数_Ruby On Rails_Ruby On Rails 3 - Fatal编程技术网

Ruby on rails Rails 3:在查询中包含SQL函数

Ruby on rails Rails 3:在查询中包含SQL函数,ruby-on-rails,ruby-on-rails-3,Ruby On Rails,Ruby On Rails 3,MyModel.选择'a,b,c'。全部 这将从数据库返回以下内容: +---+---+---+ | a | b | c | +---+---+---+ | 1 | 2 | 3 | | 4 | 5 | 6 | | 7 | 8 | 9 | +---+---+---+ 问题:如何在SQL函数的结果中包含第四列 i、 e 以下操作不起作用: MyModel.选择'a,b,c,MyFunction,b,c'。全部 尽管如此,如果我使用AS为列提供有效模型属性的名称,它仍然有效: MyModel。选

MyModel.选择'a,b,c'。全部

这将从数据库返回以下内容:

+---+---+---+
| a | b | c |  
+---+---+---+
| 1 | 2 | 3 |
| 4 | 5 | 6 |
| 7 | 8 | 9 |
+---+---+---+
问题:如何在SQL函数的结果中包含第四列

i、 e

以下操作不起作用:

MyModel.选择'a,b,c,MyFunction,b,c'。全部

尽管如此,如果我使用AS为列提供有效模型属性的名称,它仍然有效:

MyModel。选择“a、b、MyFunction、b、b作为c”。全部

我更愿意在模型的上下文中解决这个问题,而不是恢复到原始SQL,因为我还需要使用作用域


非常感谢您的建议。

您可以为AS列指定任意名称,而不是指定现有属性

irb(main):009:0> u = User.select('id, id+1 as blah').first
=> #<User id: 1>
irb(main):010:0> u.id
=> 1
irb(main):011:0> u.blah
=> 2
irb(main):012:0>

太好了,你可以!我很困惑,因为这在返回的模型中是不可见的——上面第009:0行的响应。非常感谢。
+---+---+-----+
| a | b |  c  |
+---+---+-----+
| 1 | 2 | 122 |
| 4 | 5 | 455 |
| 7 | 8 | 788 |
+---+---+-----+
irb(main):009:0> u = User.select('id, id+1 as blah').first
=> #<User id: 1>
irb(main):010:0> u.id
=> 1
irb(main):011:0> u.blah
=> 2
irb(main):012:0>