link_to with:协议无效

时间:2010-12-04 21:36:38

标签: ruby-on-rails

我希望链接使用SSL。我正在使用此代码:

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

出于某种原因,该链接是使用http://代替https://生成的。

我正在使用Rails 3.0.3。

2 个答案:

答案 0 :(得分:24)

您必须将:protocol选项放在路径助手中:

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

答案 1 :(得分:1)

如果您在应用中使用bartt-ssl_requirement ruby​​gem,则可以使用ssl-url-helper明确提及http或https协议。

优点:

  1. 如果您已启用SSL检查(在开发环境中),请按以下方式执行:SslRequirement.disable_ssl_check = true,然后传递:secure => true不会明确将https链接添加到您的视图。如果您指定:protocol => 'https'并禁用SSL检查,则情况并非如此。

  2. 此外,无需在每个地方将line_items_path更改为line_items_url