【问题标题】:Is it better to generate csv in the view or in the model?在视图中还是在模型中生成 csv 更好?
【发布时间】:2017-06-07 08:38:45
【问题描述】:

我想创建一个 Rails 应用程序来下载所有员工及其公司。

模型:公司(有_many员工)

我有以下选择。

  1. 定义#to_csv,以员工模型中的格式将员工导出到csv,循环员工,并从模板调用。
  2. 循环员工,并使用模板中的格式生成 csv。

从代码设计的角度来看,哪个更好?

====添加=== 我就是这样做的。

控制器:

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

【问题讨论】:

  • 模型课程..
  • @Md. Farhan Memon 由于那个csv文件是一种视图(浏览器不直接显示),我认为最好在模板中生成csv细节
  • 你想生成一个csv文件对吧?那么它应该是模型并且只是send那个文件,它将是可下载的。如果您不希望它可下载,那么在您的视图中创建一个表格就足够了

标签: ruby-on-rails csv download


【解决方案1】:

模型是最好的。

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-06-05
    • 2021-12-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-19
    相关资源
    最近更新 更多