我想弄清楚如何导入CSV文件以创建新记录并进行相应的关联。Rails CSV导入 - 关联参数
我有3种型号:
1)农民(的has_many:农场)
2)农场(的has_many:农作物,belongs_to的:农民)
3)作物(belongs_to的:农场)
目标是让用户手动创建每个场,然后通过CSV文件导入作物。我无法弄清楚如何将farm_id传递给正在上传的作物,从而创建关联。
作物控制器上的导入操作:
def import
Crop.import(params[:file], params[:farm_id])
redirect_to root_url, notice: "Crops imported."
end
在作物模型导入方法:
def self.import(file, farm)
CSV.foreach(file.path, headers: true, encoding:'iso-8859-1:utf-8') do |row|
row["farm_id"] = farm
Crop.create! row.to_hash
end
end
的形式在农场#上传显示页面:
#@farm = Farm.find(params[:id])
<%= form_tag import_crops_path, multipart: true do %>
<%= file_field_tag :file %>
<%= submit_tag "import CSV" %>
你怎么样在农场#show页面上发送@ farm.id以将#作物和文件一起导入?
最好是通过表单或其他方式来做到这一点?
Jon,谢谢 - 这是一个路由问题你建议的嵌套固定。我现在唯一担心的是我嵌套了太多东西。这是一种不好的做法吗? '资源:农场做 资源:农作物 集合{post:import} end end' – user1510700