1

我有一个 rails 应用程序,我在bin/rails console.

现在,当我进行查询以输出一些数据时,突然停止显示输出。

然后我可以为变量分配给定值,并且输入变量不会输出我刚刚分配的值:

irb(main):001:0> Card.all.each do {|c| print("#{c.full_name}: #{c.id}/#{c.first_name}-#{c._lastname}")  }
irb(main):004:2> x = _
irb(main):005:2> x
irb(main):006:2> x = 3 
irb(main):007:2> x # I would assume to see the value '3'
irb(main):009:3> print("hello") # I would assume to see "hello" on the screen
irb(main):010:3> 
4

1 回答 1

4

这通常是由于悬空语法而发生的。在您的情况下,您同时 do ... end使用and { ... },特别是省略end.

IRB 解析器将继续接收输入,直到您输入一个end,然后它才会运行和/或发出错误。

解决方法是刮掉do.

你想要

Card.all.each do |c|
  ...
end

或内联样式:

Card.all.each { |c| ... }
于 2021-01-16T13:08:00.987 回答