0
会社との全従業員をダウンロードするレールアプリケーションを作成したいと思います。ビューまたはモデルでcsvを生成する方が良いですか?
モデル:会社(has_many従業員)
私は以下の選択肢があります。
- define #to_csv従業員モデル、ループ従業員、およびテンプレートからの呼び出しで、従業員をcsvにエクスポートします。
- 従業員をループさせて、テンプレート内の形式でcsvを生成します。
より良いコード設計の観点からは?
==== added === 私はこのようにしています。
コントローラー:
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
テンプレート:ビュー/従業員/ hoge.csv.ruby
require 'csv'
CSV.generate do |csv|
# ...
# generate csv
end
モデルofcourseの... –
@をMd。 Farhan Memonそのcsvファイルは一種のビューなので(ブラウザには直接表示されません)、テンプレート内にcsvの詳細を生成する方が良いと思います。 – silentfox
csvファイルを正しく生成しますか?それはモデルであり、そのファイルを 'send'するだけでダウンロード可能になります。ダウンロード可能にしたくない場合は、ビューで表を作成するだけで十分です –