Странный attr_accessible в Волшебстве - PullRequest
2 голосов
/ 10 марта 2012

Я использую камень Волшебства для аутентификации.На самом деле я использовал этот проект без проблем, но у меня неожиданно возникла странная ситуация.Моя модель изначально сгенерированная пользовательская модель колдовства, без attr_accessible.

Теперь у меня есть файл seed, такой как:

users = {

:hthought => {
  :username => 'jkjhkj',
  :email => 'hkjhk',
  :crypted_password => 'hkjhjkhk',
  :salt => 'hkjhjkhjh',
  :password => '57667'
}

}

users.each do |item, hash|  
    user = User.new(hash)
    user.save!
    hash.each do |attribute, value| 
        user.update_attribute(attribute, value)
    end
end

Который, когда я выполняю (с rake db: seed),я получаю:

rake aborted!
Can't mass-assign protected attributes: crypted_password, salt

Почему это?Я действительно не понимаю, почему я получаю это, так как в моей модели User нет attr_accessible.Более того, я использую точно такой же код в другом проекте, и я так и не получил его.

Есть идеи, почему?

Ответы [ 2 ]

3 голосов
/ 10 марта 2012

Если вы видите магический код (https://github.com/NoamB/sorcery/blob/master/lib/sorcery/model.rb#L82), вы увидите, что:

attr_protected @sorcery_config.crypted_password_attribute_name, @sorcery_config.salt_attribute_name

Так что это защищенное предупреждение является нормальным.

Это было добавлениев этом коммите: https://github.com/NoamB/sorcery/commit/7c2e846bf5c084bea72eb6477e72daf0177d789e год назад.

0 голосов
/ 02 февраля 2013

Это может быть вещь Rails, а не волшебство.Если ваше новое приложение использует Rails 3.2.3 и ваше старое приложение было ниже этого уровня, возможно, ужесточение безопасности вокруг белых списков attr_protected вызывает другое поведение.Эта публикация может помочь:)

Ошибка Rails: невозможно массовое присвоение защищенных атрибутов

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...