Для моей модели данных у меня есть два разных типа: члены семьи и друзья.Мой план состоит в том, чтобы каждый из них имел внешний ключ для таблицы User, которая создается Devise.Поэтому, когда пользователь регистрируется, я хочу, чтобы он или перешел в / friends / sign_up или family_members / sign_up.Итак, мой класс Друг -
class Friend < ActiveRecord::Base
belongs_to :label
belongs_to :user
belongs_to :gender
belongs_to :location
belongs_to :orientation
belongs_to :matchmaker
def after_initialize
self.build_user if self.user.nil?
end
#accepts_nested_attributes_for :user
delegate :username, :to => :user
delegate :email, :to => :user
delegate :password, :to => :user
delegate :password_confirmation, :to => :user
delegate :rememebr_me, :to => :user
# Include default devise modules. Others available are:
# :token_authenticatable, :encryptable, :confirmable, :lockable, :timeoutable and :omniauthable
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable
# Setup accessible (or protected) attributes for your model
attr_accessible :username, :email, :password, :password_confirmation, :remember_me
end
, а мой класс Пользователь -
class User < ActiveRecord::Base
# Include default devise modules. Others available are:
# :token_authenticatable, :encryptable, :confirmable, :lockable, :timeoutable and :omniauthable
# devise :database_authenticatable, :registerable,
# :recoverable, :rememberable, :trackable, :validatable
attr_accessor :username, :email, :password, :password_confirmation, :remember_me
# Setup accessible (or protected) attributes for your model
attr_accessible :username, :email, :password, :password_confirmation, :remember_me
end
Я также использую Formtastic для своего просмотра.Прямо сейчас я получаю
unknown attribute: username
с параметрами
{"utf8"=>"✓", "authenticity_token"=>"8ScsJebuCWnflaRQkp9MsBuaaqfzQKaZBXotLyNwNyM=",
"friend"=>{"username"=>"aaaa",
"email"=>"aaa@aaa.com",
"password"=>"[FILTERED]",
"password_confirmation"=>"[FILTERED]"},
"commit"=>"Create Friend"}
Прямо сейчас, я просто случайно пытаюсь добавить nested_attributes и все, что угодно, к двум моделям.Я мог бы использовать наследование таблиц, но я бы предпочел этого не делать (если я не могу добавить внешний ключ к подклассам, указывающим на суперкласс, это было бы хорошо).