【发布时间】:2011-07-03 00:37:21
【问题描述】:
对于我的数据模型,我有两种不同的类型:家庭成员和朋友。我的计划是让每个人都有一个指向由 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 和其他任何东西添加到两个模型中。我可以使用表继承,但我不想这样做(除非我可以将外键添加到指向超类的子类,那很好)。
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-3 activerecord devise