2017-06-07 25 views
0

会社との全従業員をダウンロードするレールアプリケーションを作成したいと思います。ビューまたはモデルでcsvを生成する方が良いですか?

モデル:会社(has_many従業員)

私は以下の選択肢があります。

  1. define #to_csv従業員モデル、ループ従業員、およびテンプレートからの呼び出しで、従業員をcsvにエクスポートします。
  2. 従業員をループさせて、テンプレート内の形式で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 
+1

モデルofcourseの... –

+0

@をMd。 Farhan Memonそのcsvファイルは一種のビューなので(ブラウザには直接表示されません)、テンプレート内にcsvの詳細を生成する方が良いと思います。 – silentfox

+0

csvファイルを正しく生成しますか?それはモデルであり、そのファイルを 'send'するだけでダウンロード可能になります。ダウンロード可能にしたくない場合は、ビューで表を作成するだけで十分です –

答えて

関連する問題