2

我会一个复选框,如果检查将返回 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
...

但这不起作用。

4

2 回答 2

2

多亏了约翰,我才弄明白。

我需要:

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

而不是我原来的

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

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

于 2012-12-26T21:57:32.657 回答
1

你可以这样做:

if params[:csv]
  render text:@exams.to_csv
else
  render
end
于 2012-12-26T22:14:32.297 回答