【问题标题】:"undefined local variable or method `n' for main:Object" when trying to run "rake db:populate"尝试运行“rake db:populate”时出现“未定义的局部变量或方法‘n’ for main:Object”
【发布时间】:2013-08-09 21:57:48
【问题描述】:

我正在阅读 Michael Hartl 的教程,但我无法得到错误:

undefined local variable or method `n' for main:Object

当我运行bundle exec rake db:populate

sample_data.rake 文件

namespace :db do
  desc "Fill database with sample data"
  task populate: :environment do
    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

【问题讨论】:

    标签: ruby-on-rails ruby rspec rake


    【解决方案1】:

    您在电子邮件旁边有 n 个内插字符串,它没有在任何地方定义。删除或定义它。

    【讨论】:

      【解决方案2】:

      只需在脚本开头将n 变量初始化为0,就在name 之前。

      namespace :db do
        desc "Fill database with sample data"
        task populate: :environment do
          n = 0
          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
      

      这段代码可能是循环使用的。在这里你实际上不需要n。

      【讨论】:

        猜你喜欢
        • 2015-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-02-14
        • 2014-04-21
        • 2016-04-08
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多