【问题标题】:Check that returns csv检查是否返回 csv
【发布时间】:2012-12-27 06:14:32
【问题描述】:

如果不是,我会在检查时返回 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
...

但这不起作用。

【问题讨论】:

  • 我怀疑 respond_to 是 request.format 而不是 params[:format]
  • 那么如何将 request.format 更改为“csv”?或者如何使复选框更改 request.format?

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


【解决方案1】:

感谢约翰,我弄明白了。

我需要:

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

而不是我原来的

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

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

【讨论】:

  • 如果您通过另一个答案找到答案,那么您需要选择该答案作为已解决的答案。如果您是在没有其他人帮助的情况下完成的,请选择您的答案。看来正确的做法是选择他的。
【解决方案2】:

你可以这样做:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-08-24
    • 2019-01-13
    • 1970-01-01
    • 1970-01-01
    • 2014-02-15
    • 1970-01-01
    • 1970-01-01
    • 2017-10-16
    相关资源
    最近更新 更多