Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/59.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/10.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 RubyonRails教程(由Hartl编写)在执行name=Faker::name.name编码时可以';t质量分配受保护的属性错误_Ruby On Rails_Database_Railstutorial.org_Attr Accessible - Fatal编程技术网

Ruby on rails RubyonRails教程(由Hartl编写)在执行name=Faker::name.name编码时可以';t质量分配受保护的属性错误

Ruby on rails RubyonRails教程(由Hartl编写)在执行name=Faker::name.name编码时可以';t质量分配受保护的属性错误,ruby-on-rails,database,railstutorial.org,attr-accessible,Ruby On Rails,Database,Railstutorial.org,Attr Accessible,更新:我运行的是Ruby 1.8。指向存储库的链接是github.com/lauherk/sample_app 我正在阅读Micheal hartl的Ruby on Rails教程,在第9章中,我遇到了一个用示例用户填充db的问题 我的rake的代码是: namespace :db do desc "Fill database with sample data" task populate: :environment do User.create!(:name => "Ex

更新:我运行的是Ruby 1.8。指向存储库的链接是github.com/lauherk/sample_app

我正在阅读Micheal hartl的Ruby on Rails教程,在第9章中,我遇到了一个用示例用户填充db的问题

我的rake的代码是:

namespace :db do
  desc "Fill database with sample data"
  task populate: :environment do
    User.create!(:name => "Example User",
                 :email => "example@railstutorial.org",
                 :password => "foobar",
                 :password_confirmation => "foobar")
    99.times do |n|
      name  = Faker::Name.name
      email = "example-#{n+1}@railstutorial.org"
      password  = "password"
      User.create!(:name => name,
                   :email => email,
                   :password => password,
                   :password_confirmation => password)
    end
  end
end
运行这两个命令后:

bundle exec rake db:reset
bundle exec rake db:populate
我从命令行获得以下错误:

rake aborted!
Can't mass-assign protected attributes: Lawrence Kertzmann
/Library/Ruby/Gems/1.8/gems/activemodel-3.2.2/lib/active_model/mass_assignment_security/sanitizer.rb:48:in `process_removed_attributes'
(每次运行rake时,此特定名称都会更改)

我已经检查并确保在我的用户模型中有代码

attr_accessible :name, :email, :password, :password_confirmation
甚至尝试过设置

  config.active_record.whitelist_attributes = false
然而,在命令行中仍然有相同的结果

用示例用户填充我的数据库有什么提示吗

非常感谢

添加

attr_accessible :name
与模型相一致。当前您只有
:user\u name
(和其他值)可访问

添加

attr_accessible :name

与模型相一致。当前您只有
:user\u name
(和其他值)可访问

只需将身份验证令牌添加到可访问属性,例如:我收到的错误

Media1s Mac mini:rails\u应用media1$rake clipsfree\u导入 RAILS_ENV=开发 csvfile=/Users/media1/Desktop/clips/atemp5/demoracks2/import.csv 流产了!无法批量分配受保护的属性:标题 /usr/local/rvm/gems/ruby-1.9.3-p194/gems/activemodel-3.2.11/lib/active\u model/mass\u assignment\u security/sanitizer.rb:48:in 进程\u已删除\u属性' /usr/local/rvm/gems/ruby-1.9.3-p194/gems/activemodel-3.2.11/lib/active\u model/mass\u assignment\u security/sanitizer.rb:20:indebug\u protected\u attribute\u remove' /usr/local/rvm/gems/ruby-1.9.3-p194/gems/activemodel-3.2.11/lib/active\u model/mass\u assignment\u security/sanitizer.rb:12:in 消毒' /usr/local/rvm/gems/ruby-1.9.3-p194/gems/activemodel-3.2.11/lib/active\u model/mass\u assignment\u security.rb:230:insanimatize\u for_mass\u assignment'/usr/local/rvm/gems/ruby-1.9.3-p194/gems/activerecord-3.2.11/lib/active\u record/attribute\u assignment.rb:75:in 分配_属性' /usr/local/rvm/gems/ruby-1.9.3-p194/gems/activerecord-3.2.11/lib/active_record/base.rb:497:ininitialize' /Users/media1/Desktop/rails\u apps/lib/tasks/clipsfree\u import.rake:14:in 新的 /Users/media1/Desktop/rails\u apps/lib/tasks/clipsfree\u import.rake:14:inblock (2级)在' /Users/media1/Desktop/rails\u apps/lib/tasks/clipsfree\u import.rake:5:in 各自的 /Users/media1/Desktop/rails\u apps/lib/tasks/clipsfree\u import.rake:5:inblock 在'Tasks:TOP=>clipsfree_import(通过运行task查看完整跟踪 使用--trace)

解决方案:在models文件夹的loopsfree.rb中为attr_accessible添加属性标题

class Loopsfree < ActiveRecord::Base attr_accessible :ISRC, :title, :artist, :bpm, :file_name, :genre, :id, :sub_genre end
class Loopsfree

希望这有帮助:)快乐编码

只需将身份验证令牌添加到可访问属性,例如:我收到的错误

Media1s Mac mini:rails\u应用media1$rake clipsfree\u导入 RAILS_ENV=开发 csvfile=/Users/media1/Desktop/clips/atemp5/demoracks2/import.csv 流产了!无法批量分配受保护的属性:标题 /usr/local/rvm/gems/ruby-1.9.3-p194/gems/activemodel-3.2.11/lib/active\u model/mass\u assignment\u security/sanitizer.rb:48:in 进程\u已删除\u属性' /usr/local/rvm/gems/ruby-1.9.3-p194/gems/activemodel-3.2.11/lib/active\u model/mass\u assignment\u security/sanitizer.rb:20:indebug\u protected\u attribute\u remove' /usr/local/rvm/gems/ruby-1.9.3-p194/gems/activemodel-3.2.11/lib/active\u model/mass\u assignment\u security/sanitizer.rb:12:in 消毒' /usr/local/rvm/gems/ruby-1.9.3-p194/gems/activemodel-3.2.11/lib/active\u model/mass\u assignment\u security.rb:230:insanimatize\u for_mass\u assignment'/usr/local/rvm/gems/ruby-1.9.3-p194/gems/activerecord-3.2.11/lib/active\u record/attribute\u assignment.rb:75:in 分配_属性' /usr/local/rvm/gems/ruby-1.9.3-p194/gems/activerecord-3.2.11/lib/active_record/base.rb:497:ininitialize' /Users/media1/Desktop/rails\u apps/lib/tasks/clipsfree\u import.rake:14:in 新的 /Users/media1/Desktop/rails\u apps/lib/tasks/clipsfree\u import.rake:14:inblock (2级)在' /Users/media1/Desktop/rails\u apps/lib/tasks/clipsfree\u import.rake:5:in 各自的 /Users/media1/Desktop/rails\u apps/lib/tasks/clipsfree\u import.rake:5:inblock 在'Tasks:TOP=>clipsfree_import(通过运行task查看完整跟踪 使用--trace)

解决方案:在models文件夹的loopsfree.rb中为attr_accessible添加属性标题

class Loopsfree < ActiveRecord::Base attr_accessible :ISRC, :title, :artist, :bpm, :file_name, :genre, :id, :sub_genre end
class Loopsfree

希望这有帮助:)快乐编码

我把你的代码放在我的rake任务中,它成功了。“示例用户”的创建没有错误。它似乎已根据错误中的名称转到循环。另一方面,错误表示它试图设置的属性是“Lawrence Kertzmann”,而不是“name”或其他属性……您使用的是Ruby 1.9吗?您正在使用新的Ruby 1.9哈希语法。是的,它仍然不起作用,出现错误“无法批量分配受保护的属性:Lawrence Kertzmann”克隆了我的repo,并将代码转换为与Ruby 1.8.7兼容的代码以及上面的代码。您在github上有代码吗?如果是的话,它的链接是什么?我把你的代码放在我的rake任务中,它成功了。“示例用户”的创建没有错误。它似乎已根据错误中的名称转到循环。另一方面,错误表示它试图设置的属性是“Lawrence Kertzmann”,而不是“name”或其他属性……您使用的是Ruby 1.9吗?您正在使用新的Ruby 1.9哈希语法。是的,它仍然不起作用,出现错误“无法批量分配受保护的属性:Lawrence Kertzmann”克隆了我的repo,并将代码转换为与Ruby 1.8.7兼容的代码以及上面的代码。您在github上有代码吗?如果是,原因是什么