Теперь я использую этот код:
Пользователь has_one Пользователь_extra
Пользователь =>: имя пользователя,: электронная почта,: crypted_password,: salt,: mobile
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
Если бы вы работали с драгоценным камнем Sorcery, вы, вероятно, знали бы, что любые новые атрибуты должны быть добавлены в 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
В чем может быть проблема ??