Ruby on rails 有没有办法隐藏模型中的一些嵌套对象?
我有一些带有嵌套项目的订单,这些项目有嵌套类型。当我在视图中为@order执行Ruby on rails 有没有办法隐藏模型中的一些嵌套对象?,ruby-on-rails,forms,nested,Ruby On Rails,Forms,Nested,我有一些带有嵌套项目的订单,这些项目有嵌套类型。当我在视图中为@order执行表单时,我想隐藏其:registed属性设置为true <% form_for @order do |f| %> <% f.fields_for :items do |ff| %> <%# show all the items that have :registered == false %> <% end %> <% end %> 您可以尝
表单时,我想隐藏其:registed
属性设置为true
<% form_for @order do |f| %>
<% f.fields_for :items do |ff| %>
<%# show all the items that have :registered == false %>
<% end %>
<% end %>
您可以尝试以下方法:
<% 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 %>
<% form_for @order do |f| %>
<% f.fields_for :unregistered_items do |ff| %>
<%# 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
类顺序“Item”,:conditions=>{:registered=>false}
结束
然后你可以这样做:
<% 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 %>
<% form_for @order do |f| %>
<% f.fields_for :unregistered_items do |ff| %>
<%# show all the items that have :registered == false %>
<% end %>
<% end %>