如何告诉我的rails表格使用https?

时间:2013-05-08 22:25:08

标签: ruby-on-rails ruby ssl

我有一个rails应用程序,在这个特定的页面上(使用SSL)我有一个用于创建“帖子”的表单,然后单独用于上传属于帖子的图像的表单。

图像格式为:

<%= form_for Image.new, :html => {:multipart => true} do |g| %>
<%= g.text_field :whence, :id => "postWhence"%>
<%= g.file_field :image, :id => "postImage_file_field", multiple: true, name: "image[image]" %>
<%= g.file_field :image, :id =>"postLogo_file_field"%>
<% end %>

我看到有人添加了:secure => true:protocol => 'https',但是如果表单的格式类似于 form_for @user, :url => user_path(:secure => true)

我尝试这样做的原因是因为当我部署到我的生产服务器时,图像上传突然不起作用,并且在检查日志时我看到了:

Filter chain halted as :ensure_proper_protocol rendered or redirected
Completed 302 Found in 2ms (ActiveRecord: 0.0ms)" when I attempted to upload the image.

1 个答案:

答案 0 :(得分:0)

你应该像你提到的那样覆盖网址。类似的东西:

<%= form_for Image.new, :url => image_path(:protocol => 'https'), :html => {:multipart => true} do |g| %>

以下是使用url_for的文档。 http://api.rubyonrails.org/classes/ActionDispatch/Routing/UrlFor.html#method-i-url_for

url中的form_for选项会将您传递给url_forlink_to的相同字段。