我正在从 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/