Почему возвращается id #, а не значение id? - PullRequest
0 голосов
/ 01 февраля 2010

cart.rb:

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

Когда я вызываю метод, я ищу имя поставщика, но он возвращает идентификатор поставщика Что я делаю не так?

<%= @cart.vendor3name %>

CartItem: 0x264c358

Ответы [ 3 ]

2 голосов
/ 01 февраля 2010

Если вам нужно имя первого поставщика коллекции, я думаю, что это код, который вы должны выполнить:

@items.first.vender.name

использование first с блоком, похоже, возвращает первый идентификатор, соответствующий выражению в данном блоке или что-то в этом роде.

1 голос
/ 01 февраля 2010

1001 * попробовать *

@items.first.vendor.name
0 голосов
/ 01 февраля 2010
@items.first.vender.name

- это правильный способ сделать это, то, что вы видите, это не ID, а объект. Когда вы пытаетесь распечатать объект в Rails, он выводит тип объекта и адрес объекта в памяти, разделенные двоеточием.

Использование блока, которым вы ничего не возвращаете, он просто делает то, что у вас есть внутри {} объекта, поэтому вы вызываете метод .name, но блок ничего не возвращает.

@items.first.vender.name возвращает имя первого продавца

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...