Ell*_*iot 11 csv ruby-on-rails
我一直在阅读类似的问题,但许多答案已经过时或不够清楚.
我希望能够像(在控制器动作中)做一些事情:
respond_to do |format|
format.html
format.csv
end
Run Code Online (Sandbox Code Playgroud)
我知道我需要一个像action.csv.erb这样的视图
所以我的问题是:
1)我需要在rails中配置什么才能允许这种情况发生.
2)如何设置CSV视图以显示模型中的一些基本字段?
更新:
所以我试着去逗号的路线,我安装并出售了宝石.
然后根据读到的我,我把它扔进我的模型(根据我的需要定制):
comma do
user_id 'User'
created_at 'Date'
name 'Name'
end
Run Code Online (Sandbox Code Playgroud)
然后我把它扔在索引操作的控件中(根据自述文件):
format.csv { render :csv => MyModel.limited(50) }
Run Code Online (Sandbox Code Playgroud)
然后,当访问索引(不是CSV格式)时,我收到以下ActionController异常错误:
undefined方法`逗号'代表
然后我用谷歌搜索了,我读到我应该在我的模型中加上需要'逗号'.
完成后,我刷新(我的本地索引页),并将错误更改为:
没有这样的文件加载 - 逗号
所以在这一点上我决定显然不能找到逗号文件.所以我将comma的vendored gem文件夹中的文件从comma的lib文件夹复制到rails lib文件夹.然后我刷新了页面并登陆了这个错误:
未初始化的常量错误
然后我几乎放弃了.
跟踪的错误是:
/Users/elliot/.gem/ruby/1.8/gems/activesupport-2.3.5/lib/active_support/dependencies.rb:443:in
load_missing_constant' /Users/elliot/.gem/ruby/1.8/gems/activesupport-2.3.5/lib/active_support/dependencies.rb:80:in
const_missing'/Users/ elliot/ .gem/ruby/1.8/ gems/ activesupport-2.3 .5/lib/active_support/dependencies.rb:92:在`const_missing'中
其他说明,我已经安装了FasterCSV
希望这足够的信息:)
看看FasterCSV.
csv_string = FasterCSV.generate do |csv|
cols = ["column one", "column two", "column three"]
csv << cols
@entries.each do |entry|
csv << [entry.column_one, entry.column_two, entry.column_three ]
end
filename = "data-#{Time.now.to_date.to_s}.csv"
end
send_data(csv_string, :type => 'text/csv; charset=utf-8; header=present', :filename => filename)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
19952 次 |
最近记录: |