Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/24.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 rakedb:seed不返回nil到字符串的隐式转换_Ruby On Rails_Ruby_Sqlite_Gem_Rake - Fatal编程技术网

Ruby on rails rakedb:seed不返回nil到字符串的隐式转换

Ruby on rails rakedb:seed不返回nil到字符串的隐式转换,ruby-on-rails,ruby,sqlite,gem,rake,Ruby On Rails,Ruby,Sqlite,Gem,Rake,当运行rake db:seed以放入测试用户时,我得到以下错误: ROLES rake aborted! no implicit conversion of nil into String /Users/joshburns/Code/file-server/db/seeds.rb:10:in `<top (required)>' /Users/joshburns/.rvm/gems/ruby-2.1.0@file-server/gems/activesupport-4.0.3/lib

当运行
rake db:seed
以放入测试用户时,我得到以下错误:

ROLES
rake aborted!
no implicit conversion of nil into String
/Users/joshburns/Code/file-server/db/seeds.rb:10:in `<top (required)>'
/Users/joshburns/.rvm/gems/ruby-2.1.0@file-server/gems/activesupport-4.0.3/lib/active_support/dependencies.rb:223:in `load'
/Users/joshburns/.rvm/gems/ruby-2.1.0@file-server/gems/activesupport-4.0.3/lib/active_support/dependencies.rb:223:in `block in load'
/Users/joshburns/.rvm/gems/ruby-2.1.0@file-server/gems/activesupport-4.0.3/lib/active_support/dependencies.rb:214:in `load_dependency'
/Users/joshburns/.rvm/gems/ruby-2.1.0@file-server/gems/activesupport-4.0.3/lib/active_support/dependencies.rb:223:in `load'
/Users/joshburns/.rvm/gems/ruby-2.1.0@file-server/gems/railties-4.0.3/lib/rails/engine.rb:540:in `load_seed'
/Users/joshburns/.rvm/gems/ruby-2.1.0@file-server/gems/activerecord-4.0.3/lib/active_record/tasks/database_tasks.rb:154:in `load_seed'
/Users/joshburns/.rvm/gems/ruby-2.1.0@file-server/gems/activerecord-4.0.3/lib/active_record/railties/databases.rake:181:in `block (2 levels) in <top (required)>'
Tasks: TOP => db:seed
(See full trace by running task with --trace)
角色
雷克流产了!
没有将nil隐式转换为字符串
/Users/joshburns/Code/fileserver/db/seeds.rb:10:in`'
/Users/joshburns/.rvm/gems/ruby-2.1。0@file-server/gems/activesupport-4.0.3/lib/active\u-support/dependencies.rb:223:in'load'
/Users/joshburns/.rvm/gems/ruby-2.1。0@file-server/gems/activesupport-4.0.3/lib/active\u support/dependencies.rb:223:in'block in load'
/Users/joshburns/.rvm/gems/ruby-2.1。0@file-server/gems/activesupport-4.0.3/lib/active\u-support/dependencies.rb:214:in'load\u-dependency'
/Users/joshburns/.rvm/gems/ruby-2.1。0@file-server/gems/activesupport-4.0.3/lib/active\u-support/dependencies.rb:223:in'load'
/Users/joshburns/.rvm/gems/ruby-2.1。0@file-server/gems/railties-4.0.3/lib/rails/engine.rb:540:in'load_seed'
/Users/joshburns/.rvm/gems/ruby-2.1。0@file-server/gems/activerecord-4.0.3/lib/active_record/tasks/database_tasks.rb:154:in'load_seed'
/Users/joshburns/.rvm/gems/ruby-2.1。0@file-服务器/gems/activerecord-4.0.3/lib/active_record/railties/databases.rake:181:in'block(2层)in'
任务:TOP=>db:seed
(通过使用--trace运行任务查看完整跟踪)
我的种子文件:

puts 'ROLES'
YAML.load(ENV['ROLES']).each do |role|
  Role.find_or_create_by_name(role)
  puts 'role: ' << role
end
puts 'DEFAULT USERS'
user = User.find_or_create_by_email :name => ENV['ADMIN_NAME'].dup, :email => ENV['ADMIN_EMAIL'].dup, :password => ENV['ADMIN_PASSWORD'].dup, :password_confirmation => ENV['ADMIN_PASSWORD'].dup
puts 'user: ' << user.name
user.add_role :admin
放置“角色”
YAML.load(环境['ROLES'])。每个do | role|
角色。按名称查找或创建(角色)
放置'role:'ENV['ADMIN\u NAME'].dup,:email=>ENV['ADMIN\u email'].dup,:password=>ENV['ADMIN\u password'].dup,:password\u confirmation=>ENV['ADMIN\u password'].dup

放置“user:”如果这是seeds.db文件,为什么要输出字符串

puts 'ROLES'
puts 'DEFAULT USERS'
puts 'user: ' << user.name

如果希望使seeds.rb文件可读,应使用注释将其拆分

dup用于什么?你能给我看一下add_角色的代码吗
YAML.load(ENV['ROLES']).each do |role|
  Role.find_or_create_by_name(role)
  puts 'role: ' << role
end
user = User.find_or_create_by_email :name => ENV['ADMIN_NAME'], :email => ENV['ADMIN_EMAIL'], :password => ENV['ADMIN_PASSWORD'], :password_confirmation => ENV['ADMIN_PASSWORD']

user.add_role :admin #-> need to see your method