Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 在巫术中可以接触到奇怪的属性_Ruby On Rails_Ruby On Rails 3 - Fatal编程技术网

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