Ruby on rails 在巫术中可以接触到奇怪的属性
我正在使用魔法宝石进行身份验证。实际上,我已经将它用于另一个没有任何问题的项目,但我突然遇到了一个奇怪的情况。我的模型是最初生成的巫术用户模型,没有任何属性可访问 现在,我有一个种子文件,如:Ruby on rails 在巫术中可以接触到奇怪的属性,ruby-on-rails,ruby-on-rails-3,Ruby On Rails,Ruby On Rails 3,我正在使用魔法宝石进行身份验证。实际上,我已经将它用于另一个没有任何问题的项目,但我突然遇到了一个奇怪的情况。我的模型是最初生成的巫术用户模型,没有任何属性可访问 现在,我有一个种子文件,如: users = { :hthought => { :username => 'jkjhkj', :email => 'hkjhk', :crypted_password => 'hkjhjkhk', :salt => 'hkjhjkhjh', :pass
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),我得到:
为什么呢?我真的不明白为什么会这样,因为在我的用户模型中没有可访问的属性。此外,我在另一个项目中使用了完全相同的代码,但我从未得到过这个
你知道为什么吗?如果你看到魔法代码(),你可以看到:
attr_protected @sorcery_config.crypted_password_attribute_name, @sorcery_config.salt_attribute_name
所以这是正常的保护警告
它是在一年前加入这个提交的。它可能是Rails的东西,而不是巫术的东西。如果您的新应用程序使用的是Rails 3.2.3,而您的旧应用程序低于此值,那么可能是由于受attr_保护的白名单周围的安全性加强导致了不同的行为。这个帖子可能会有帮助:)
有趣的是,我在我的另一个项目中没有得到这一点非常奇怪,非常非常奇怪。谢谢澄清。
attr_protected @sorcery_config.crypted_password_attribute_name, @sorcery_config.salt_attribute_name