2012-03-26 50 views
0

我正在尝试用Rake任务在Rails中开发一个小项目。Rails Rake生成的输入vs自我输入

首先,我从耙调用的一些数据,我想将其存储在数据库中。 问题:当我尝试存储生成的数据时,我总是收到一个错误(未知属性:actuals_cost)。但是,当我试图给它手册中,它的工作原理...

下面是我的一些代码:

desc "Import Projects from CRM" 
task :import_projects_crm => [:environment] do 
    crm_projects = Crm::Importer.new().import_projects 

    Project.create(
     :order_number => crm_projects[0][0], 
     :client_name => crm_projects[0][2], 
     :partner_name => crm_projects[0][1], 
     :totals_sales_orders => crm_projects[0][3], 
     :actuals_cost => crm_projects[0][4], 
     :actuals_sales => crm_projects[0][5], 
     :external_cost => crm_projects[0][7], 
     :external_sales => crm_projects[0][8], 
     :total_change_request => crm_projects[0][6], 
     :storage_path_sales_order => crm_projects[0][9], 
     :storage_path_pm => crm_projects[0][10] 
    ) 

#Project.create(:actuals_cost => 100) --> works :(
    end 

的数据是从一个SQLServer拉,这就是为什么我用方括号工作。

编辑:

好了,发现了问题。就像我之前说的。在rake中,我与远程数据库(SQLServer)建立了连接,并且我想将数据存储在本地数据库(PostgreSQL)中。

问题在于连接。当我从SQLServer中提取数据时,您需要从数据库中切换,这是您可以做到的。

ActiveRecord::Base.establish_connection :[one_of_databasename_in_your_yaml] 
+0

我thnk我们需要了解项目是如何定义的详细信息,特别是有关actuals_cost领域。你正在初始化环境,所以这很好。听起来像在耙子下,你要么获得一些不同的宝石,要么是不同的数据库连接,要么没有数据库连接...... – mcr 2012-03-26 11:22:07

+0

我正在使用PostgreSQL数据库。当我“放”它时,我从crm_projects接收数据。但是,当我想存储它,我很快。只有当我这样做手动=> Project.create(:actuals_cost => 100) – 2012-03-26 11:26:52

+0

Oyeah,在rake文件中,我与外部数据库(SQLServer)建立连接并保存新数据,我使用本地主机PostgreSQL数据库。 – 2012-03-26 11:46:50

回答