2012-03-23 68 views
0

我现在正在使用此代码:巫宝石与HAS_ONE关联

用户 HAS_ONE User_extra

用户 =>:用户名,:电子邮件,:crypted_pa​​ssword,:盐,:移动

User_extra =>:USER_ID,:date_birth,性别,:地址

user.rb

class User < ActiveRecord::Base 
    authenticates_with_sorcery! 
    attr_accessible :username, :email, :password, :password_confirmation, :first_name, 
        :user_extra_attributes 

    has_one :user_extra, :dependent => :destroy 
    accepts_nested_attributes_for :user_extra 

end 

user_extra.rb

class UserExtra < ActiveRecord::Base 

belongs_to :user 

end 

users_controller.rb

def new 
    @user = User.new 
    @user.build_user_extra 
    end 

    def edit 
    @user = User.find_by_permalink(params[:id]) 
    @user.build_user_extra 
    end 

如果你用法术宝石的工作,你可能知道,任何新的属性应该被添加到attr_accessible,所以在我的情况是:user_extra_attributes,但如果我添加它,然后出现错误: Can't mass-assign protected attributes: date_birth(1i), date_birth(2i), date_birth(3i),gender, address,这样的话,我加入他们逐一attr_accessible这样的:

attr_accessible :gender, :address ... 

但无论如何抛出一个错误:

Can't mass-assign protected attributes: date_birth(1i), date_birth(2i), date_birth(3i), gender, address 

什么可能是问题??

+0

你加入哪个模型'attr_accessible:性别,:地址,...'来? – 2012-03-24 05:45:12

+0

以用户模式.. – 2012-03-24 06:24:07

回答

1

您应该添加attr_accessible:性别,:地址等方式向UserExtra模型

+0

啊,我会尝试一下,但没有tnx – 2012-03-25 12:24:22