Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/visual-studio-code/3.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 3.1 rubyonrails控制台中sum的怪异行为_Ruby On Rails 3.1 - Fatal编程技术网

Ruby on rails 3.1 rubyonrails控制台中sum的怪异行为

Ruby on rails 3.1 rubyonrails控制台中sum的怪异行为,ruby-on-rails-3.1,Ruby On Rails 3.1,有人注意到这样的事情吗?为什么会这样 ruby-1.9.2-p290 :006 > User.count (0.4ms) SELECT COUNT(*) FROM "users" => 102 ruby-1.9.2-p290 :007 > User.count + 1 (0.4ms) SELECT COUNT(*) FROM "users" => 103 ruby-1.9.2-p290 :008 > User.count+ 1 (0

有人注意到这样的事情吗?为什么会这样

ruby-1.9.2-p290 :006 > User.count
   (0.4ms)  SELECT COUNT(*) FROM "users" 
 => 102 
ruby-1.9.2-p290 :007 > User.count + 1
   (0.4ms)  SELECT COUNT(*) FROM "users" 
 => 103 
ruby-1.9.2-p290 :008 > User.count+ 1
   (0.4ms)  SELECT COUNT(*) FROM "users" 
 => 103 
ruby-1.9.2-p290 :009 > User.count+1
   (0.4ms)  SELECT COUNT(*) FROM "users" 
 => 103 
ruby-1.9.2-p290 :010 > User.count +1
   (0.5ms)  SELECT COUNT(1) FROM "users" 
 => 102 
使用ruby 1.9.2p290(2011-07-09修订版32553)[x86_64-linux]&&code>Rails 3.1.3

额外材料:

ruby-1.9.2-p290 :007 > "ayay".length + 1
 => 5 
ruby-1.9.2-p290 :008 > "ayay".length +1
ArgumentError: wrong number of arguments(1 for 0)
    from (irb):8:in `length'
    ...

这取决于这样一个事实,即在红宝石色的空格中,可以是重要的。您会看到不同的结果,因为Ruby以不同的方式解释您的示例。所以

第一:

"ayay".length + 1
就像

"ayay".length.+(1)
 "ayay".length(+1)
第二点:

"ayay".length +1
就像

"ayay".length.+(1)
 "ayay".length(+1)
通过这种方式,您可以了解为什么Ruby在第二种情况下给出错误

关于这个问题:Ruby将代码解释为:

User.count(+1)

而且,正如您从生成的SQL中看到的,这是一个不同之处,因为
+1
被视为列名称参数。

。和“(User.count)+1”返回“103”。顺便说一句,它在ruby 1.8.7/rails 2.3.8甚至jruby/rails 3.1中都是可复制的。论文通常可以为您节省:)谢谢您的回复,正如我所想。尽管如此,这似乎是一种奇怪的行为。。。