2012-08-02 69 views
0

我在secure.website.com上有一个安全的付款页面。使用设计在特定页面上注销,注销休息时间,表示没有id = sign_out的用户。我猜这是因为当我在安全页面上时,该页面上的所有链接也都有secure.website.com/users/sign_out(例如)。如何在使用link_to时始终将www用作子域名

而不是总是指定我想在我的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。

+0

听起来更像是一个Web服务器问题,你是在apache或nginx上运行它吗?他们应该为这样的场合重新规划路线。 – Saifis 2012-08-02 06:34:33

回答

0

您可以创建一个方法default_url_options

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

你可以把在子控制器的应用控制器此方法。据我所知,你只能设置整个主机,而不是子域。一般来说,您可以在此方法中支持任何选项url_for

+0

在我登录secure.website.com页面时无法正常工作......它仍将所有链接都显示为secure.website.com/blabla – 2012-08-02 05:35:10

+0

尝试添加:only_path => false。 – 2012-08-02 10:07:35

相关问题