Link_to with: протокол не работает

Я хочу, чтобы ссылка использовала SSL. Я использую этот код:

<%= link_to "Buy now!", line_items_path(:thing_id => @thing), :method => :post, :protocol => "https", :only_path => false %>

По какой-то причине ссылка создается с помощью http:// вместо https://.

Я использую Rails 3.0.3.

Ответы

Ответ 1

Вы должны поместить опцию: protocol внутри помощника пути:

<%= link_to "Buy now!", line_items_url(:thing_id => @thing, :protocol => "https"), :method => :post %>

Ответ 2

Если вы используете bartt-ssl_requirement rubygem в своем приложении, вы можете использовать ssl-url-helper, чтобы явно указывать протокол http или https.

Преимущества:

  • Если вы отключили проверку SSL (в среде разработки) следующим образом: SslRequirement.disable_ssl_check = true, то передача :secure => true не будет явно добавлять ссылки https к вашему представлению. Это не так, если вы указываете :protocol => 'https' и отключите проверку SSL.

  • Кроме того, не нужно менять line_items_path на line_items_url в каждом месте.