2

我正在尝试运行自定义 rake 测试。这是代码:

task :test => :environment do
  user = User.first
  puts "Winner: #{user.email}"
  puts "test"
end

但是当我运行它时,我得到了这个错误。

$ rake test

rake aborted!
undefined method `email' for nil:NilClass

Tasks: TOP => test
(See full trace by running task with --trace)

关于为什么我无权访问用户类的任何见解?即使我有 :environment 在那里?

4

2 回答 2

1

我最近遇到了类似的事情。我试图得到它id,但在我使用映射之前我无法让它工作。试试这个:

task :test => :environment do 
  email = User.first.map(&:email)
  puts "Winner: #{email}"
  puts "test" 
end

我并不是说这是正确的方法,但它对我有用。

于 2012-09-25T18:03:19.077 回答
0

您收到此错误的原因是由于某种原因您没有获得任何用户

User.first

您可以使用调试器检查这一点,或者简单地尝试

User.first.nil?
于 2012-05-21T05:48:52.040 回答