2012-01-02 4 views
1

У меня есть модель work_order и модель одометра. Я пытаюсь добавить показания одометра для каждого рабочего задания, но также нужно иметь возможность добавлять показания одометра без привязки к нему рабочего порядка.accepts_nested_attributes_for не работает правильно

У меня есть настройки модели, как это:

#odometer.rb 
class Odometer < ActiveRecord::Base 
    has_one :work_order 
    accepts_nested_attributes_for :work_order 
end 

#work_order.rb 
class WorkOrder < ActiveRecord::Base 
    belongs_to :odometer 
end 

У меня есть установка формы, как это:

= form_for @work_order do |f| 
     = f.label :created_at, "Start Date" 
     = f.text_field :created_at, :class => "datepicker", :value => @work_order.created_at.nil? ? '' : @work_order.created_at.strftime('%Y-%m-%d') 
     %br 
     = f.label :number, "Work Order #" 
     = f.text_field :number 
     %br 
     = f.label :complete_date, "Finish Date" 
     = f.text_field :complete_date, :class => "datepicker", :value => @work_order.complete_date.nil? ? '' : @work_order.complete_date.strftime('%Y-%m-%d') 
     %br 
     = f.label :mechanic_id 
     = f.collection_select :mechanic_id, @mechanics, :id, :display_name 

     = f.fields_for :odometer do |o| 
     = o.label :mileage 
     = o.number_field :mileage 
     = f.label :equipment_id 
     = f.collection_select :equipment_id, @all_equipment, :id, :name 

     = f.label :description 
     = readable_text_area f, :description, :style => "width:630px;height:100px;" 

     = f.submit 'Save' 

Я не могу показаться, чтобы получить это, чтобы сохранить одометр материал. Я уверен, что делаю что-то совершенно не так, но я не могу понять это.

Спасибо за любую помощь.

Toby

ответ

1

Похоже, форма немного задом наперед. Пройдя по моделям, Odometer принимает вложенные атрибуты для WorkOrder. Но форма говорит мне, что это наоборот.

Checkout это Railscast http://railscasts.com/episodes/196-nested-model-form-part-1

+0

Я наблюдал, что railscast много раз надеясь не размещать это здесь. Я ценю ссылку и совет. Вы видите другой способ сделать это и заставить его работать? Я почти ничего. Я просто не хочу иметь odometer_id в модели рабочего порядка, если я могу помочь. –