Есть ли способ скрыть некоторые из вложенных объектов в модели? - PullRequest
0 голосов
/ 07 июля 2010

У меня есть несколько заказов с вложенными элементами, а элементы имеют вложенные виды.Когда я делаю form_for @order в представлении, тогда я хотел бы скрыть все элементы, у которых атрибут :registered имеет значение true

<% form_for @order do |f| %>
  <% f.fields_for :items do |ff| %>
    <%# show all the items that have :registered == false %>
  <% end %>
<% end %>

или

def register
  @order = Order.find(params[:id])
  # Sort out the :registered == true
end

1 Ответ

2 голосов
/ 07 июля 2010

Вы можете попробовать что-то вроде этого:

<% form_for @order do |f| %>
  <% f.fields_for :items do |ff| %>
    <% next if ff.object.registered %>
    <%# show all the items that have :registered == false %>
  <% end %>
<% end %>

Или вы можете создать вторую ассоциацию для незарегистрированных предметов:

class Order < ActiveRecord::Base
  has_many :unregistered_itmes, :class_name => "Item", :conditions => { :registered => false } 
end

И тогда вы можете сделать что-то вроде этого:

<% form_for @order do |f| %>
  <% f.fields_for :unregistered_items do |ff| %>
    <%# show all the items that have :registered == false %>
  <% end %>
<% end %>
...