我将一个复选框,当检查将返回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
...
多亏了John,我才弄明白了。
我需要:
request.format = :csv if params[:csv]
而不是原来的
params[:format] = "csv" if params[:csv]
我不知道改变格式是不是最好的办法,但这正是我需要的。
你可以这样做:
if params[:csv]
render text:@exams.to_csv
else
render
end