2010-02-01 79 views
0

cart.rb:为什么返回的是id#而不是id的值?

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

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

<%= @cart.vendor3name %>

CartItem:0x264c358

回答

2

如果你想在集合的第一个供应商的名称,我觉得这是必须执行的代码:

@items.first.vender.name 

使用first与块似乎是返回第一个id与给定块中的表达式匹配或者类似的东西。

1

尝试

@items.first.vendor.name 
0
@items.first.vender.name 

是这样做的正确方法,你所看到的并不是ID,而是显示了对象。当你尝试在Rails中打印出一个对象时,它会打印出对象类型和内存中用冒号分隔的对象地址。

使用您所在的块不会返回任何内容,它只是在{}内对对象进行操作,因此您正在调用.name方法,但块不返回任何内容。

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

相关问题