在视图或模型中生成csv更好吗?

时间:2017-06-07 08:38:46

标签: ruby-on-rails csv download

我想创建一个rails应用程序,用他们的公司下载所有员工。

模特:公司(has_many员工)

我有以下选择。

  1. 定义#to_csv,使用Employee Model中的格式将员工导出到csv,循环员工,并从模板调用。
  2. 循环员工,并使用模板中的格式生成csv。
  3. 从代码设计的角度来看哪个更好?

    ====加入=== 我是这样做的。

    控制器:

    def hoge
      employees = Employee.all
      respond_to do |format|
        format.csv do
          send_data render_to_string('hoge'), filename: "hoge.csv", type: 'text/csv;chartset=utf-8'
        end
      end
    end
    

    模板:views / employees / hoge.csv.ruby

    require 'csv'
    CSV.generate do |csv|
      # ...
      # generate csv
    end
    

1 个答案:

答案 0 :(得分:0)

模特是最好的。

还有一个使用datatable插件的选项,您可以使用该插件在表格上方添加按钮以导出csv,excel,pdf等数据。

检查链接:https://datatables.net/extensions/buttons/examples/initialisation/export.html