2012-03-26 51 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

回答