Скорее подробно опишите мой собственный набор записей, который прост, но имеет много полей и подзаписей, я просто хотел бы иметь возможность заставить работать пример, приведенный на github, т.е. https://github.com/activescaffold/active_scaffold/wiki/API%3A-Nested
# app/models/company.rb
class Company < ActiveRecord::Base
has_many :contacts
end
# app/models/contact.rb
class Contact < ActiveRecord::Base
belongs_to :company
end
# app/controllers/contacts_controller.rb
class ContactsController < ApplicationController
active_scaffold :contacts do | config |
end
end
# app/controllers/companies_controller.rb
class CompaniesController < ApplicationController
active_scaffold :companies do |config|
config.nested.add_link("Company's contacts", [:contacts])
end
end
Очевидно, что в таблице контактов есть столбец для company_id (т.е. внешний ключ).
«Как есть», кажется, что в контроллере компаний «компании» должны быть «компанией». Итак, после этого изменения строка config.nested... вызывает следующую ошибку: -
Ошибка маршрутизации неопределенный метод `add_link' для nil:NilClass
После попытки (и неудачи) исправить это, я просто прокомментировал это, и это работает довольно хорошо, однако мне нужно отношение один к одному (или ни одного), поэтому я внес изменение (контакты должны были измениться на контакт, в противном случае объекты Rails): -
# app/models/company.rb
class Company < ActiveRecord::Base
has_one:contact
end
Кажется, что это работает, но когда контакт обновляется, он создает беспорядок в форме, отображая обновленный контакт в верхней части формы, прямо под метками полей, которые фактически принадлежат записям ниже, то есть записям компании. Это также позволяет создавать более одного контакта при создании записи компании, но это может быть ограничено другим методом или, возможно, исправлено, если работает config.nested.add_link.