cart.rb:
def vendor3name
@items.first { |item| item.vender.name }
end
当我调用该方法时,我正在查找供应商名称,但它返回供应商ID#。我做错了什么?
<%= @cart.vendor3name %>
CartItem:0x264c358
答案 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返回第一个供应商的名称