2015-02-16 5 views
0

Я, скорее всего, пропустил что-то простое, но я пробовал несколько вещей безрезультатно. Мне нужно отредактировать существующий трек (используя ActiveAdmin) и сохранить запись, обновляющую его статус эксклюзивности.Вложенные атрибуты в форме не видны

У меня есть Tracks моделируют

#app/models/track.rb: 

    has_many :exclusivities, class_name: 'Exclusivity', dependent: :destroy 

    accepts_nested_attributes_for :exclusivities 

    attr_accessible :exclusivities_attributes 

    #whether or not track is exclusive [boolean] 
    attr_accessible :exclusive 

    #whether or not track is fully exclusive and should be pulled off the front end [boolean] 
    attr_accessible :full_exclusivity 

, и я только что создал Exclusivity модель.

#app/models/exclusivity.rb  

    belongs_to :track 
    attr_accessible :end_date, :industry, :track_id, :notes, :staff_notes 

и моя форма:

<%= semantic_form_for [:manage, @track], html: {data: {secondary:true}} do |f| %> 

a bunch of inputs..... 

<%= f.inputs "Track Exclusivity", class:'inputs align-left' do %> 
    <%= f.input :exclusive %> 
    <%= f.input :full_exclusivity, 
    label: "Fully Exclusive" %> 
    <%= f.fields_for :exclusivities do %> 
    <%= f.input :notes %> 
    <%= f.input :staff_notes %> 
    <%= f.input :industry %> 
    <%= f.input :end_date, as: :date_picker %> 
    <% end %> 
<% end %> 

Когда я иду редактировать дорожки, ATTRS Трека есть, но гнездились (Эксклюзивность ATTRS) не является (я могу проверить дорожки эксклюзивных и full_exclusivity флажков)

Я также попытался с помощью semantic_fields_for и f.inputs :for => exclusivities

Что я здесь отсутствует?

ответ

0

Вы забыли передать свой вид строитель в fields_for блока.

<%= f.inputs "Track Exclusivity", class:'inputs align-left' do %> 
    <%= f.input :exclusive %> 
    <%= f.input :full_exclusivity, 
    label: "Fully Exclusive" %> 
    <%= f.fields_for :exclusivities do |ff| %> 
    <%= ff.input :notes %> 
    <%= ff.input :staff_notes %> 
    <%= ff.input :industry %> 
    <%= ff.input :end_date, as: :date_picker %> 
    <% end %> 
<% end %> 
+0

Спасибо, человек. Вы правы, я забыл это! Тем не менее, когда я перехожу к редактированию (используя activeAdmin), эти связанные поля по-прежнему не используются. –

+0

Привет, рад, что вы решили свою проблему. Я собирался предположить, что вы гарантируете, что ваши объекты не ноль, но не хотят быть педантичными с момента вашего оригинала, так как вы упомянули «редактирование». Я предположил, что эксклюзивы уже созданы. Но да ни один из связанных объектов обычно является виновником и получает вас каждый раз. – hraynaud

0

Актуальной проблемой было следующее: поля формы не отображались, если атрибуты исключительности дорожки были пустыми. Поэтому я автоматически создаю связанные attrs, как только вы нажмете на контроллер редактирования, используя этот код. Это трюк!

def edit 
    @track = Track.includes(:licenses).find(params[:id]) 
     if @track.exclusivities.empty? 
     @track.exclusivities.build 
     end 
    @track.save 
end 
Смежные вопросы