我有一个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.
答案 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_for
或link_to
的相同字段。