0

我在secure.website.com 有一个安全支付页面。使用设计在该特定页面上注销,注销会中断说没有 id=sign_out 的用户。我猜这是因为当我在安全页面上时,该页面上的所有链接也都有secure.website.com/users/sign_out(例如)。

而不是总是指定我想在我的 link_to 中使用 www 作为 url ...我想将其设置为默认值。我尝试做 default_url_options 但这似乎不起作用。除非另有说明,否则如何确保所有链接始终是 www 子域?

最后,我一直在做的保证页面是 www 除非在安全页面上是这样的:

  def always_use_www
    if params[:controller] != 'subscriptions' && request.subdomain != 'www'
      redirect_to :subdomain => "www"
    end
  end

我把它作为前置过滤器放在应用程序控制器中。这似乎是一种非常糟糕的方式。有“正确”的方法吗?我只希望一个安全页面具有不同的子域...否则始终使用 www。

4

1 回答 1

0

您可以创建一个方法default_url_options

def default_url_options
  {
    :host => "www.example.com",
    :only_path => false
  }
end

您可以将此方法放在子控制器的应用程序控制器中。据我所知,您只能设置整个主机,而不是子域。通常,您可以在此方法中放置任何选项url_for支持。

于 2012-08-02T03:28:36.150 回答