当用户通过设计注册时,我正在尝试创建新的合作伙伴对象,然后在创建用户时分配该关系。这是我目前所拥有的:
模型/ user.rb
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable, :token_authenticatable, :omniauthable
# Setup accessible (or protected) attributes for your model
attr_accessible :email, :password, :password_confirmation, :remember_me, :admin, :partner_ids, :provider, :uid
#has_and_belongs_to_many :partners
has_many :partners, :through => :partners_users
has_many :partners_users
accepts_nested_attributes_for :partners_users
accepts_nested_attributes_for :partners
def with_partner
self.partners.build
self
end
模式/ partner.rb
attr_accessible :name, :address, :verified, :verification_code
has_many :users, :through => :partners_users
has_many :partners_users
has_many :places
has_many :offers
注册表格
registration_path(resource_name)do | f | %GT; 帐户信息 商业信息 5%> “大花哨的按钮”%>目前,当我提交表单时,我收到以下错误:
Can't mass-assign protected attributes: partner
我在这里做错了什么?
答案 0 :(得分:0)
如果您将accept_nested_attributes与attr_accessible一起使用,则需要将属性放在attr_accessible中:
attr_accessible :partner_attributes
答案 1 :(得分:0)
查看this。
在accepts_nested_attributes_for
模型中使用User
可以将数据发送到Partner
模型。
然后,在用户模型中,您必须设置所请求的attr_accessible
。
attr_accessible : partner_attributes