我正在从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
在我的组. 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
问题是浏览器仅输出以下内容:
#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#
model方法似乎被忽略了,即使在Rails重新启动之后也是如此。
3条答案
按热度按时间wko9yo5t1#
to_csv
是一个类方法。这意味着它应该像Group.to_csv
一样被调用。你可能想把方法签名改为Group.to_csv(groups)
。然后在
show
中zrfyljdw2#
我也遇到了这个问题,这个问题已经被这个答案解决了:https://stackoverflow.com/a/17311372/3458781
很快,你必须重新启动你的服务器。希望它对你有用。
juud5qan3#
rails控制台的快速版本,不用于生产,而只是访问excel中的数据:
第一次:
第二次执行:
在csv文件中复制这两个调用的结果