我想弄清楚如何導入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