部分的にhttpsを付与する時に確認したいこと。〜view編〜
あれ?パスが更新されない?なんで?なんで?
今回、「あるURL先からhttpだったURLをhttpsに変更する」という処理を追記する時にハマったのでメモ。
誤ったソース
<% unless growth_hackers.blank? %> <%= link_to "growth_hackerに移動", growth_hacker_path(:search_params => search_params, :protocol => 'https'),{ :target => "_blank"} %> <% end %>
正しいソース
<% unless growth_hackers.blank? %> <%= link_to "growth_hackerに移動", growth_hacker_url(:search_params => search_params, :protocol => 'https'),{ :target => "_blank"} %> <% end %>
誤ったソース
<% form_for(:growth_hacker, @growth_hacker, :url => create_growth_hacker_path(:protocol => 'https') , :html => {:class => 'create_growth_hacker_form'}) do |f| %>
正しいソース
<% form_for(:growth_hacker, @growth_hacker, :url => create_growth_hacker_url(:protocol => 'https') , :html => {:class => 'create_growth_hacker_form'}) do |f| %>
違いが良く分からないかと思いますが、
httpsを指定する時は「, :protocol => 'https'」が必要であり、
「_path」ではなく、「_url」にする必要があるということです。
相対パスか絶対パスかの違いでプロトコルレベルになると絶対パスにする必要があるみたいです。
なので、「あるURL先からhttpだったURLをhttpsに変更する」際は
- 「_path」ではなく、「_url」
とだけ覚えて頂く必要があります!