这个Ruby代码有什么问题(我假定它在if/else语句中)?

这个Ruby代码有什么问题(我假定它在if/else语句中)?,ruby,object,if-statement,equality,Ruby,Object,If Statement,Equality,此代码的目标是,如果对象的项目名称和数量与所比较的对象相同,则返回true。在我的代码中,两个都返回false class Item attr_reader :item_name, :qty def initialize(item_name, qty) @item_name = item_name @qty = qty end def to_s "Item (#{@item_name}, #{@qty})"

此代码的目标是,如果对象的
项目名称
数量
与所比较的对象相同,则返回true。在我的代码中,两个都返回false

class Item
    attr_reader :item_name, :qty

    def initialize(item_name, qty)
        @item_name = item_name
        @qty = qty
    end
    def to_s
        "Item (#{@item_name}, #{@qty})"
    end
    def ==(other_item)
      if @item_name.==(@qty)
        true
      else
        false
      end
    end
end

p Item.new("abcd",1)  == Item.new("abcd",1)
p Item.new("abcd",2)  == Item.new("abcd",1)
我该怎么做才能修好它?我还尝试过让if/else语句说以下内容:

一,

二,

三,

您正在检查当前项目的名称是否等于数量;这不太可能是真的。(另外,如果返回的是布尔值,
if
是多余的。)

  if @item_name == @qty
    true
  else
    false
  end
  if item_name == qty
    true
  else
    false
  end
  if item_name.==(qty)
    true
  else
    false
  end
def ==(other_item)
  item_name == other_item.item_name && qty == other_item.qty
end