使用ActiveAdmin在Rails应用程序中导入CSV数据可以通过以下步骤完成:
gem 'activeadmin'
然后运行bundle install
来安装ActiveAdmin。
rails generate active_admin:resource YourModel
将YourModel
替换为你要导入CSV数据的模型名称。
app/admin/your_model.rb
文件中添加以下代码来实现:ActiveAdmin.register YourModel do
menu label: 'YourModel'
collection_action 'import' do
render 'import'
end
collection_action 'upload', method: :post do
begin
file = params[:file]
if file.present?
file_content = file.read
csv = CSV.parse(file_content, headers: true)
csv.each do |row|
YourModel.create(row.to_hash)
end
redirect_to admin_your_model_path, notice: 'CSV imported successfully'
else
redirect_to import_admin_your_model_path, alert: 'Please select a file to import'
end
rescue StandardError => e
redirect_to import_admin_your_model_path, alert: "Error importing CSV: #{e.message}"
end
end
end
这将添加一个名为“导入”的菜单项,并在其中添加一个表单,用于上传CSV文件。
app/views/admin/your_model
目录下创建一个名为_import.html.erb
的文件,并添加以下代码:<%= form_tag(upload_admin_your_model_path, multipart: true) do %>
<div>
<label for="file">Choose a CSV file to import:</label>
<input type="file" name="file" id="file">
</div>
<br>
<input type="submit" value="Import">
<% end %>
这将创建一个表单,用于上传CSV文件并触发导入操作。
这样,你就可以使用ActiveAdmin在Rails应用程序中导入CSV数据了。
领取专属 10元无门槛券
手把手带您无忧上云