rails 4 form_tag返回pdf格式(对虾)

set*_*tls 0 pdf ruby-on-rails prawn ruby-on-rails-4

我想有一个form_tag返回一个pdf.

这是我视图中的form_tag:

<%= form_tag do_some_things_path, method: :get do %>

  <strong>Start date</strong>
  <%= text_field_tag 'start_date', nil, id: 'start_date' %>

  <%= submit_tag 'Do the things' %>

<% end %>
Run Code Online (Sandbox Code Playgroud)

这是我的控制器中的操作:

def do_some_things
  @start_date = params[:start_date].to_date
  @stuff = "123"
  respond_to do |format|
    format.html { render :something }
    format.pdf do
      pdf = SomeThingsPdf.new(@stuff)
      send_data pdf.render, filename: Time.zone.today,
                            type: "application/pdf",
                            disposition: "inline"
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

输入日期并单击该按钮将返回一个漂亮的html文档.但这不是我想要的 - 我想要一个PDF!我已尝试过format: :pdf标题(之前method: :get)和submit标记附近的变体,但没有任何作用.有人可以指点我正确的方向吗?我真的很感谢你的帮助,SO社区!

小智 7

只需添加一个隐藏字段,如下所示:

<%= hidden_field_tag :format, :pdf %>

有用!