accepts_nested_attributes_for форма здания - PullRequest
0 голосов
/ 23 февраля 2011

Я получаю сообщение об ошибке: Неопределенный метод сборки для nil: NilClass при попытке создать пустой дочерний объект для моей формы.

class PatientsController < ApplicationController
  def index
  end

  def new
    @patient = Patient.new

    # THIS CAUSES AN ERROR (undefined method `build' for nil:NilClass)
    @patient.user.build 
  end
end    

class Patient < ActiveRecord::Base
  belongs_to :user
  accepts_nested_attributes_for :user
  attr_accessible :user_id, :user_attributes
end

# == Schema Information
#
# Table name: patients
#
#  id         :integer         not null, primary key
#  user_id    :integer
#  created_at :datetime
#  updated_at :datetime
#

1 Ответ

1 голос
/ 23 февраля 2011

, поскольку пациент принадлежит пользователю, вам необходимо создать пациента из этого пользователя.

@user.patients.build(params[:patient])

Patient.new в основном используется для создания пустого экземпляра пациента, который можно отобразить, напримерновая форма, но при публикации в создание необходимо создать ее от пользователя.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...