Волшебный камень с ассоциацией has_one - PullRequest
0 голосов
/ 24 марта 2012

Теперь я использую этот код:

Пользователь 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

В чем может быть проблема ??

1 Ответ

1 голос
/ 25 марта 2012

Вы должны добавить attr_accessible: пол,: адрес и т. Д. К модели UserExtra

...