ruby-on-rails - 从 Rails 导出 CSV 数据

标签 ruby-on-rails ruby-on-rails-3 csv

我正在从 rails 导出 csv 数据。我在这里学习教程:http://railscasts.com/episodes/362-exporting-csv-and-excel?view=asciicast

在我的 Controller 中,我有:

  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

问题是浏览器只输出以下内容:

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

模型方法似乎被忽略了,即使在 rails 重新启动后也是如此。有什么想法吗?谢谢

最佳答案

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

然后在显示

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

关于ruby-on-rails - 从 Rails 导出 CSV 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16661854/

相关文章:

ruby-on-rails - Rails 3 与 Rspec2 和 authlogic : Cannot spec requests & views

ruby-on-rails - 在 rails 配置文件和 javascript 之间共享变量

ruby-on-rails-3 - 如何修改 gem ?

python - 编辑 DataFrame 中的值

windows - 比较两个 .CSV 文件并输出重复名称

sqlite - 使用Haskell/木薯将UTCTime转换为CSV字段

ruby-on-rails - 创造什么!意思是在 rails 上?

ruby - 将 Rails 应用程序打包为 gem 或其他可重用的东西?

ruby-on-rails - 设计首次使用 Rails 登录

sql - 在 Rails 中使用序列创建或更新