Ошибка вложенных моделей в Rails 3 - PullRequest
1 голос
/ 16 ноября 2010

У меня есть две модели App и Contact. Приложение имеет отношения has_one с контактом. Я объявил предложение accepts_nested_attributes_for в модели приложения для контактов. Теперь в apps_controller, если я использую метод build для объекта app, я получаю ошибку для класса nil, даже если я объявил отношение.

App.rb

class App < ActiveRecord::Base
  has_one :contact_person, :dependent => :destroy
  accepts_nested_attributes_for :contact_person
end

ContactPerson.rb

class ContactPerson < ActiveRecord::Base
  belongs_to :app
end

apps_controller.rb

def new
  @app = App.new
  @app.contact_person.build
end

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

Ответы [ 2 ]

3 голосов
/ 16 ноября 2010

Я должен использовать @app.build_contact_person вместо @app.contact_person.build. Таким образом, это сработало:)

0 голосов
/ 16 ноября 2010

Объявление ассоциации не создает ее автоматически:

class App < ActiveRecord::Base
  has_one :contact_person, :dependent => :destroy
  accepts_nested_attributes_for :contact_person
  # Adding this line should work
  after_create { self.contact_person = ContactPerson.new }
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...