2015-04-28 55 views
0

我试图创建一个rake任务,它查询API并将记录添加到表中。但是,我无法访问该表(我收到以下错误)。Rails - 无法从rake任务中访问表

ActiveRecord::StatementInvalid: Could not find table 'exchange_rates' 

我的代码是:

namespace :query_api do 

    task get_currency_values: :environment do 

    exchange_rate = ExchangeRate.new 
    #some other code 

    end 

end 

的代码位于

lib/tasks/query-api.rake 
+1

愚蠢的问题遇到错误的环境中运行,但我不得不问。表'exchange_rates'是否存在? –

+0

它出现在schema.rb中,并且服务器正在运行,因此我假定该表存在。 – octavian

+2

也许这个表格存在于一个环境中(比如说“发展”),而不是另一个(比如说“生产”)?如果是这种情况,您可能需要在不存在的环境中运行数据库迁移以创建它。 –

回答

1

与这些其他意见同意。这是一个直截了当的错误。如果您在相关环境(developmentproduction或其他)中加载轨道控制台(rails c)并键入ExchangeRate.new,则应该看到相同的错误。

从那里调查与数据库的连接并确保其实际工作。

此外,还要检查其移民已经在你与rake db:migrate:status

+0

谢谢,这确实是问题(记录只在生产中保存)。我怎样才能让记录保存在开发中呢? – octavian

+0

检查以确保您的“生产”和“开发”模式具有相同的迁移,并且模式匹配。如果他们不匹配(并且确实看起来他们没有),那么这会告诉你不同之处。 – jefflunt