我正在尝试用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]
我thnk我们需要了解项目是如何定义的详细信息,特别是有关actuals_cost领域。你正在初始化环境,所以这很好。听起来像在耙子下,你要么获得一些不同的宝石,要么是不同的数据库连接,要么没有数据库连接...... – mcr 2012-03-26 11:22:07
我正在使用PostgreSQL数据库。当我“放”它时,我从crm_projects接收数据。但是,当我想存储它,我很快。只有当我这样做手动=> Project.create(:actuals_cost => 100) – 2012-03-26 11:26:52
Oyeah,在rake文件中,我与外部数据库(SQLServer)建立连接并保存新数据,我使用本地主机PostgreSQL数据库。 – 2012-03-26 11:46:50