3

Railsからcsvデータをエクスポートする作業を行っています。ここのチュートリアルに従っています: http://railscasts.com/episodes/362-exporting-csv-and-excel?view=asciicast

私のコントローラーには次のものがあります:

  def show
    # @company is being provided correctly.
    @groups = @company.groups
    render text: @groups.to_csv
  end  

私のgroup.rbモデルでは:

  def self.to_csv
    Rails.logger.info "Hello World"
    CSV.generate do |csv|
      csv << column_names
      all.each do |product|
        csv << product.attributes.values_at(*column_names)
      end
    end
  end

問題は、ブラウザが次のものだけを出力していることです。

#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#

レールを再起動した後でも、モデル メソッドが無視されているようです。ここで何が問題なのですか?ありがとう

4

3 に答える 3

8

to_csvクラスメソッドです。のように呼ばれることを意味しますGroup.to_csv。代わりに、メソッドのシグネチャを次のように変更することをお勧めしますGroup.to_csv(groups)

 def self.to_csv(groups)
    Rails.logger.info "Hello World"
    CSV.generate do |csv|
      csv << column_names
      groups.each do |product|
        csv << product.attributes.values_at(*column_names)
      end
    end
  end

次にshow

  def show
    # @company is being provided correctly.
    @groups = @company.groups
    render text: Group.to_csv(@groups)
  end  
于 2013-05-21T03:57:49.370 に答える
0

この問題にも遭遇しましたが、これはすでにこの回答で解決されています: https://stackoverflow.com/a/17311372/3458781

まもなく、サーバーを再起動する必要があります。それがうまくいくことを願っています。

于 2014-04-25T08:13:43.827 に答える