语法错误,带有“?”的意外tOP_ASGN错误以变​​量名

时间:2019-07-28 01:00:54

标签: ruby-on-rails ruby ruby-on-rails-5.2

为什么Test.foo起作用,但Test2.foo为什么起作用?失败。

似乎没有'?'可以使用,但是我更希望使用?。跟踪是布尔值的对话。

  

语法错误,意外的tOP_ASGN

作品:

class Test
  def foo
    @foo ||= true  # => true
  end           # => :foo

end  # => :foo

失败:

class Test2
  def foo?
    @foo? ||= true  # => true
  end           # => :foo

end  # => :foo

1 个答案:

答案 0 :(得分:2)

方法名称末尾可以使用

?符号,但是@foo是实例变量,而不是方法。并且变量名中不允许?