2008-11-18 4 views
3

Если у меня есть ...Rails: Проверьте has_many в View

class Bunny < ActiveRecord::Base 
    has_many :carrots 
end 

... как я могу проверить в представлении, если @bunny имеет какие-либо морковь? Я хочу сделать что-то вроде этого:

<% if @bunny.carrots? %> 
    <strong>Yay! Carrots!</strong> 
    <% for carrot in @bunny.carrots %> 
    You got a <%=h carrot.color %> carrot!<br /> 
    <% end %> 
<% end %> 

Я знаю @bunny.carrots? не работает - что будет?

ответ

8
<% if @bunny.carrots.any? %> 
    <strong>Yay! Carrots!</strong> 
    <% for carrot in @bunny.carrots %> 
    You got a <%=h carrot.color %> carrot!<br /> 
    <% end %> 
<% end %> 
+0

Да! Спасибо! Я люблю RoR, но иногда его простота затрудняет изучение ... разве это не противоречие? – neezer 2008-11-18 00:19:52

1

либо:

if @bunny.carrots.length>0 

или

unless @bunny.carrots.nil? || @bunny.carrots.length>0 

или

if @bunny.carrots.any? 

, кстати, вы можете найти больше операций по коллекциям, если вы используете IRB или сценарий/консоль с требуют 'irb/completion'

0

@bunny.carrots является массивом, так что вы можете рассматривать его как таковой, вызвав array methods на нем, например, unless @bunny.carrots.empty?

 Смежные вопросы

  • Нет связанных вопросов^_^