Ich versuche, ein kleines Projekt in Rails mit Rake-Aufgaben zu entwickeln.Rails Rake generiert Input vs Self Input
Zuerst bekomme ich einige Daten vom Rake-Call und ich möchte es in der Datenbank speichern. Das Problem: Wenn ich versuche, die generierten Daten zu speichern, erhalte ich immer einen Fehler (unbekanntes Attribut: actuals_cost). Aber wenn ich versuche, es manuell in geben, es funktioniert ...
Hier einige meines Code:
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
Die Daten aus einem SQL Server gezogen wird, das ist, warum ich mit den eckigen Klammern arbeiten.
EDIT:
Okay, fand das Problem. Wie ich schon sagte. In Rake mache ich eine Verbindung mit einer entfernten Datenbank (SQLServer) und ich möchte die Daten in einer lokalen Datenbank (PostgreSQL) speichern.
Das Problem war mit der Verbindung. Wenn ich die Daten aus dem SQL Server gezogen habe, müssen Sie von der Datenbank wechseln und so können Sie es tun.
ActiveRecord::Base.establish_connection :[one_of_databasename_in_your_yaml]
I thnk wir mehr Details über benötigen, wie Projekt definiert ist, und zwar über das actuals_cost Feld. Sie initialisieren die Umgebung, also ist das gut. Es klingt wie unter Rake, du bekommst entweder einen anderen Satz von Edelsteinen oder eine andere Datenbankverbindung, oder vielleicht auch keine Datenbankverbindung, ... – mcr
Ich benutze eine PostgreSQL-Datenbank. Ich erhalte Daten von crm_projects, wenn ich sie "setze". Aber wenn ich es aufbewahren will, icant. nur wenn ich es manuell so mache => Project.create (: actuals_cost => 100) –
Oyeah, in der Rake-Datei stelle ich eine Verbindung mit einer externen Datenbank (SQLServer) her und zum Speichern der neuen Daten verwende ich einen localhost PostgreSQL-Datenbank. –