2014-03-13 48 views
0

我有一个简单的小耙子脚本,应该用我已经放在一起的一些数据填充数据库。但是,即使它看起来应该可以工作,但我得到一个错误,告诉我没有数据库连接。我仍然处于“发展状态”,RAILS_ENV =发展。 Rails很高兴,但不是耙...Rails 4任务与环境和数据库连接,但没有连接报告

require 'rake' 

namespace :load_drugs do 
    desc "Loads drugs into the tables associated with Drug Classification" 
    task :from_file, [:filename] => [:environment] do |t, args| 
    puts "Loading data from: #{args[:filename]}" 

    File.open(args[:filename]).each_line() do |line| 
     cls, generic,names = line.split("\t") 
     names = names.split(",") 

     cls = DrugClassification.find_or_create(cls) 
    end 
    end 
end 

我使用rails 4和ruby 2.1以及sqlite3 gem。我的数据库存在于开发中,并且rails很好。我是Rails 4的全新产品,所以它可能只是一个愚蠢的rails 4问题。

实际的错误是:未定义的方法`find_or_create”的DrugClassification(没有数据库连接):类

回答

0

由现在的OP也可能是‘移动的’,但我发现这一点的同时寻找Rails的相同的答案4自从我终于找到了一个“解决方案”,我想我会分享它。

Rails 4似乎在Rake中有一个主要的错误。它只响应rake任务内非常简单的活动记录查询。

我发现SomeModel.find_each不起作用,但没有其他更改,我发现 SomeModel.all.each确实有效。同样,旧的可靠的“find(id)”也适用。不需要任何其他人,所以不知道其他人不工作(可能find_or_create基于OP结果不起作用)

+0

我的问题实际上是RAILS 4 rake工作方式的一些变化。它根本没有看到ActiveRecord对象的定义。我只是最终在RAILS 3中重新创建了这个项目,因为我必须在几个小时内完成这个项目。 – user632657