python - ActiveModel::UnknownAttributeError: WorkOrder 的未知属性“”
问题描述
我做了一个 rake 任务,它应该导入我通过将 3 个 CSV 文件与 Pandas 和 Python 合并制作的 CSV 文件(我是 Ruby 和 Rails 的新手,所以这就是我在这部分使用 Pandas 的原因)。
这是我创建的 rake 任务,rails generate task import import_csv
当我运行时可以看到它rake -T
。
namespace :import do
desc "Import finalCsv.csv into database"
task import_csv: :environment do
require 'csv'
filename = "#{Rails.root}/db/finalCsv.csv"
CSV.foreach(filename, headers: true) do |row|
WorkOrder.create!(row.to_hash)
end
end
end
这是我将 3 个原始 CSV 合并在一起的 python 脚本。
import pandas as pd
locations = pd.read_csv("locations.csv")
technicians = pd.read_csv("technicians.csv")
workOrders = pd.read_csv("work_orders.csv")
workOrders = workOrders.merge(technicians, how="inner", left_on="technician_id", right_on="id")
workOrders = workOrders.merge(locations, how="right", left_on="location_id", right_on="id")
workOrders = workOrders.rename(columns={"name_x": "Full Name", "name_y": "Company"})
workOrders = workOrders.drop(labels = ["id_x", "id_y", "id"], axis=1)
finalCsv = workOrders.to_csv("finalCsv.csv", encoding="utf-8")
print(finalCsv)
此外,这里是我的迁移和架构文件。
移民:
def change
create_table :work_orders do |t|
t.integer :technician_id
t.integer :location_id
t.time :time
t.integer :duration
t.integer :price
t.string :FullName
t.string :Company
t.string :City
t.timestamps
end
end
end
架构:
create_table "work_orders", force: :cascade do |t|
t.integer "technician_id"
t.integer "location_id"
t.time "time"
t.integer "duration"
t.integer "price"
t.string "FullName"
t.string "Company"
t.string "City"
t.datetime "created_at", precision: 6, null: false
t.datetime "updated_at", precision: 6, null: false
end
end
最后,当我运行WorkOrder.all
(我的模型)或WorkOrder.new
在 rails 控制台中时,两者都是有效的,所以我对这里出了什么问题感到有些困惑。有任何想法吗?
解决方案
向大家致谢。我最终修改了我的 Python 脚本,以便在将 Pandas 数据帧写入 CSV 时没有 id 列。然后我又遇到了一些无法预料的问题......我最终重新生成了我的模型并重新开始。
推荐阅读
- python - Python、Graphql 变异和 Dango API
- javascript - 第二次点击时如何关闭手风琴?
- bash - 我需要配置什么环境变量才能将 .bash* 文件移动到 .bash 目录?
- android - Android Studio 如何在 Windows 中使用 mega sdk
- powershell - 共享网络文件夹路径 - 在 Powershell 中递归检查文件
- angular - Angular文件上传单元测试(事件:HttpEvent
) 参数无法覆盖完整代码 - c++ - 尝试诊断 C++ 标准 for 循环之间的差异并累积副作用
- javascript - CSS 类的多次迭代以多次重复使用
- python - 如何在networkX图中弯曲边缘
- json - 将 JSON 解组为结构,但将值转换为所需的 dtype