【发布时间】:2017-06-07 08:38:45
【问题描述】:
我想创建一个 Rails 应用程序来下载所有员工及其公司。
模型:公司(有_many员工)
我有以下选择。
- 定义#to_csv,以员工模型中的格式将员工导出到csv,循环员工,并从模板调用。
- 循环员工,并使用模板中的格式生成 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