首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用ActiveAdmin在Rails应用程序中导入CSV数据

使用ActiveAdmin在Rails应用程序中导入CSV数据可以通过以下步骤完成:

  1. 安装ActiveAdmin:在Rails应用程序中安装ActiveAdmin,可以通过在Gemfile中添加以下代码来实现:
代码语言:ruby
复制
gem 'activeadmin'

然后运行bundle install来安装ActiveAdmin。

  1. 生成ActiveAdmin资源:使用以下命令生成ActiveAdmin资源:
代码语言:txt
复制
rails generate active_admin:resource YourModel

YourModel替换为你要导入CSV数据的模型名称。

  1. 添加CSV导入功能:在ActiveAdmin资源中添加CSV导入功能,可以通过在app/admin/your_model.rb文件中添加以下代码来实现:
代码语言:ruby
复制
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文件。

  1. 创建导入视图:在app/views/admin/your_model目录下创建一个名为_import.html.erb的文件,并添加以下代码:
代码语言:html
复制
<%= 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文件并触发导入操作。

  1. 测试导入功能:启动Rails应用程序并访问ActiveAdmin界面,然后导航到“导入”菜单项,选择CSV文件并单击“导入”按钮,以测试导入功能。

这样,你就可以使用ActiveAdmin在Rails应用程序中导入CSV数据了。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • 领券