Каждая компания должна иметь один CompanyContact. Форма моей компании имеет поля для контактов компании. Когда я обновляю Компанию и добавляю новый контакт компании, он работает нормально, потому что на странице показа компании он показывает новый контакт компании. Но когда я нажимаю ссылку «Изменить», которая приводит меня на страницу «Изменить» (примечание: я даже еще не нажимаю кнопку обновления), в форме «Изменить компанию», где должен находиться контакт компании, ничего не отображается. Поэтому я проверяю логи и контакт компании был удален.
DELETE FROM "company_contacts" WHERE "company_contacts"."id" = ? [["id", 4]]
Я в замешательстве, потому что я не вызывал никакого действия удаления.
----------------------------------------
company.rb
has_one :company_contact, :dependent => :destroy
accepts_nested_attributes_for :company_contact
----------------------------------------
company_contact.rb
belongs_to :company
----------------------------------------
companies_controller.rb
def new
@company = Company.new
company_contact = @company.build_company_contact
respond_to do |format|
format.html # new.html.erb
format.json { render json: @company }
end
end
def edit
@company = Company.find(params[:id])
company_contact = @company.build_company_contact
end