Rails: проверьте has_many в представлении - PullRequest
3 голосов
/ 18 ноября 2008

Если у меня есть ...

class Bunny < ActiveRecord::Base
  has_many :carrots
end

... как я могу проверить в View, есть ли у @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? не работает - что будет?

Ответы [ 4 ]

8 голосов
/ 18 ноября 2008
<% if @bunny.carrots.any? %>
  <strong>Yay! Carrots!</strong>
  <% for carrot in @bunny.carrots %>
    You got a <%=h carrot.color %> carrot!<br />
  <% end %>
<% end %>
3 голосов
/ 18 ноября 2008
unless @bunny.carrots.empty? 

будет работать так же

1 голос
/ 18 ноября 2008

либо:

  if @bunny.carrots.length>0

или

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

или

  if @bunny.carrots.any?

кстати, вы найдете больше операций с коллекциями, если вы используете irb или скрипт / консоль с require 'irb / extension'

0 голосов
/ 21 ноября 2008

@bunny.carrots - это массив, так что вы можете обращаться с ним как таковым, вызывая методы массива для него, например, unless @bunny.carrots.empty?

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