AnA*_*ice 3 csv ruby-on-rails ruby-on-rails-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
Run Code Online (Sandbox Code Playgroud)
在我的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
Run Code Online (Sandbox Code Playgroud)
问题是浏览器输出的内容如下:
#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#
Run Code Online (Sandbox Code Playgroud)
即使在重新启动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
Run Code Online (Sandbox Code Playgroud)
然后进去 show
def show
# @company is being provided correctly.
@groups = @company.groups
render text: Group.to_csv(@groups)
end
Run Code Online (Sandbox Code Playgroud)