Создание цикла for X in Y возвращает то, что возвращается операторами, содержащимися в нем. - PullRequest
1 голос
/ 17 сентября 2009

следующее утверждение ...

content_tag(:li, concept.title)

... возвращает что-то вроде:

<li>"My big idea"</li>

Следующее определение метода при вызове возвращает то же самое:

def list_of_concepts(part)
 content_tag(:li, concept.title)
end 

Как и ...

def list_of_concepts(part)
 content_tag(:li, part.concepts.first.title)
end  

Но следующее ...

def list_of_concepts(part)
  for concept in part.concepts
    content_tag(:li, concept.title)
  end
end  

... просто дает мне кучу знаков фунта ("#") на мой взгляд, как будто он возвращает true или false или счетчик, а не то, что возвращает content_tag. Как я могу заставить его вернуть то, что content_tag возвращает?

Еще раз спасибо,

Стивен.

1 Ответ

7 голосов
/ 17 сентября 2009

цикл for не возвращает ваши данные, попробуйте это:

def list_of_concepts(part)
  part.concepts.map { |c| content_tag(:li, c.title) }.join
end
...