У меня есть 2 модели: пользователь и пациент.Пользователь HAS_ONE Пациент и пациент BELONGS_TO Пользователь.
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
# insurance :string(255)
# created_at :datetime
# updated_at :datetime
#
class User < ActiveRecord::Base
has_one :patient
attr_accessible :username, :password, :active, :disabled, :first_name, :last_name,
:address_1, :address_2, :city, :state, :postcode, :phone, :cell, :email
attr_accessor :password
end
# == Schema Information
#
# Table name: users
#
# id :integer not null, primary key
# username :string(255)
# encrypted_password :string(255)
# salt :string(255)
# active :boolean
# disabled :boolean
# last_login :time
# first_name :string(255)
# last_name :string(255)
# address_1 :string(255)
# address_2 :string(255)
# city :string(255)
# state :string(255)
# postcode :string(255)
# phone :string(255)
# cell :string(255)
# email :string(255)
# created_at :datetime
# updated_at :datetime
#
В контроллере моих пациентов я пытаюсь создать новую форму пациента.
class PatientsController < ApplicationController
def new
@patient = Patient.new
end
end
In My View (new.html).erb)
<%= form_for @patient do |patient_form| %>
<% patient_form.fields_for :user do |user_fields| %>
<table class="FormTable" border="0" cellspacing="0" cellpadding="0">
<tr>
<td class="label">
<%= user_fields.label :username %> *:
</td>
<td class="input">
<%= user_fields.text_field :username, :class=>"TextField" %>
</td>
</tr>
</table>
...
<%end%>
<%end%>
Форма отображается пустой с кнопкой отправки без сгенерированной разметки для полей пользователя
Мне сказали, что я делаю это неправильно, потому что у пациента есть acceptpts_nested_attributes_for: user и это должен быть пользователь, вложивший атрибуты НО в моей системе. Я хочу использовать модель ресурсов, чтобы пациент и другие типы пользователей обрабатывались отдельно.
Пример таблицы базы данных:
USERS: id | first_name | last_name ... etc
ПАЦИЕНТЫ: id | user_id | страхование