Я пытаюсь разработать небольшой проект на Rails с помощью rake-tasks.
Прежде всего, я получаю некоторые данные из rake-call и хочу сохранить их в базе данных.
Проблема: когда я пытаюсь сохранить сгенерированные данные, я всегда получаю сообщение об ошибке (неизвестный атрибут: 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, поэтому я работаю с квадратными скобками.
EDIT:
Хорошо, нашел проблему. Как я уже говорил раньше. В грабли я устанавливаю соединение с удаленной базой данных (SQLServer) и хочу сохранить данные в локальной базе данных (PostgreSQL).
Проблема была со связью. Когда я извлек данные из SQLServer, вам нужно переключиться из базы данных, и вот как вы можете это сделать.
ActiveRecord::Base.establish_connection :[one_of_databasename_in_your_yaml]