й не имеет ~
метода, вы должны использовать !
.
irb(main):001:0> x=false
=> false
irb(main):002:0> !x
=> true
irb(main):003:0> x.class
=> FalseClass
irb(main):004:0> FalseClass.instance_methods
=> [:to_s, :&, :|, :^, :nil?, :===, :=~, :!~, :eql?, :hash, :<=>, :class, :singleton_class, :clone, :dup, :initialize_dup, :initialize_clone, :taint, :tainted?, :untaint, :untrust, :untrusted?, :trust, :freeze, :frozen?, :inspect, :methods, :singleton_methods, :protected_methods, :private_methods, :public_methods, :instance_variables, :instance_variable_get, :instance_variable_set, :instance_variable_defined?, :instance_of?, :kind_of?, :is_a?, :tap, :send, :public_send, :respond_to?, :respond_to_missing?, :extend, :display, :method, :public_method, :define_singleton_method, :object_id, :to_enum, :enum_for, :==, :equal?, :!, :!=, :instance_eval, :instance_exec, :__send__, :__id__]
instance_methods
может перечислить все методы экземпляра текущего класса.
x не имеет метода '~', возможно, вы можете использовать '!'. – pangpang
liuzxc является правильным. Вам нужно '!', А не '~'. –
'~ x = true' синтаксически неверно. '~ x' не является переменной. Это не имеет смысла. – sawa