2015-11-30 3 views
1

я модель называется Offer, а другой называются PurchasinGroupRails: Условные вложенные атрибуты в форме редактирования

Offer имеет много PurchasingGroups

Offer принимает вложенных атрибутов для PurchasingGroups

При создании предложения вы можете добавить как и многие покупательные группы.

PurchasingGroup имеет логический атрибут, называемый active.

при редактировании Offer вы можете увидеть все созданные группы покупок, однако я хочу, чтобы пользователь редактировал только активные группы покупок и не отображал неактивные группы покупок.

Это мое edit действие в offers_controller.rb:

def edit 
    @offer = Offer.find(params[:id]) 
end 

И это моя форма (только та часть, которая имеет значение):

<fieldset> 
     <legend>Purchasing groups</legend> 
     <%= f.fields_for :purchasing_groups do |builder| %> 
      <%= render partial: 'purchasing_group_fields', locals: { f: builder } %> 
     <% end %> 
    </fieldset> 

В форме редактирования все закупочные группы показываются для редактирования, я хочу показывать только те, которые являются активными Я имею в виду purchasing_group.active == true

Как это лучший способ сделать это?

ответ

2
<%= f.fields_for :purchasing_groups, @offer.purchasing_groups.where(active: true) do |builder| %> 
    <%= render partial: 'purchasing_group_fields', locals: { f: builder } %> 
<% end %> 

с другой стороны, вы можете также добавить ассоциацию в модели

class Offer 
    has_many :active_purchasing_groups, class_name: "PurchasinGroup", -> { where(active:true) } 
    ... 
end 

, а затем

<%= f.fields_for :active_purchasing_groups do |builder| %> 
    <%= render partial: 'purchasing_group_fields', locals: { f: builder } %> 
<% end %> 
+0

Чудесная !, я не знаю, что вы можете передать запросы ' f.fields_for', большое вам спасибо, что вы спасли мой день. С уважением! – SsouLlesS

+0

Привет, добавьте то, что вы сказали мне, что он работает нормально, однако, когда есть ошибка в форме, группа покупки сбрасывается, я имею в виду, что она не отображает последние введенные значения ... что является проблемой юзабилити ... – SsouLlesS

+0

может вы прикрепляете код контроллера? – richfisher

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