为什么id#返回而不是id的值?

时间:2010-02-01 06:03:27

标签: ruby-on-rails ruby

cart.rb:

def vendor3name
       @items.first { |item| item.vender.name }
end

当我调用该方法时,我正在查找供应商名称,但它返回供应商ID#。我做错了什么?

<%= @cart.vendor3name %>

CartItem:0x264c358

3 个答案:

答案 0 :(得分:2)

如果您想要集合的第一个供应商的名称,我认为这是您必须执行的代码:

@items.first.vender.name

使用带有块的first似乎返回了与给定块中的表达式匹配的第一个id或类似的内容。

答案 1 :(得分:1)

@items.first.vendor.name

答案 2 :(得分:0)

@items.first.vender.name

是执行此操作的正确方法,您所看到的不是ID,而是向您显示对象。当您尝试在Rails中打印出一个对象时,它会打印出对象类型和内存中用冒号分隔的对象地址。

使用你的块不会返回任何内容,它只是在{}中对象执行你所拥有的内容,因此你调用.name方法但是块不会返回任何内容。

@ items.first.vender.name返回第一个供应商的名称