检查是否返回csv

时间:2012-12-26 21:41:52

标签: ruby-on-rails ruby-on-rails-3

我会选中一个复选框,当检查时将返回csv和html,否则返回。 我按照这个视频,让csv工作 http://railscasts.com/episodes/362-exporting-csv-and-excel?autoplay=true

现在我有一个随表单提交的check_box_tag。如果选中该复选框,则应该呈现csv。

=form_tag exams_path, method: :get do
  =text_field_tag :search, params[:search]
  =check_box_tag "csv"
  = submit_tag "Search by id", name: nil

控制器里面有

...
params[:format] = "csv" if params[:csv]
respond_to do |format|
  format.html
  format.csv {render text:@exams.to_csv}
end
...

但这不起作用。

2 个答案:

答案 0 :(得分:2)

感谢约翰,我想通了。

我需要:

request.format = :csv if params[:csv]

而不是我原来的

params[:format] = "csv" if params[:csv]

不知道改变格式是否是最好的方法,但它正是我需要的。

答案 1 :(得分:1)

你可以这样做:

if params[:csv]
  render text:@exams.to_csv
else
  render
end