簡體   English   中英

使用的link_to時,如何始終使用WWW的子域

[英]how to always use www as the subdomain when using link_to

我在secure.website.com上有一個安全的付款頁面。 使用devise登出該特定頁面時,登出中斷表示沒有id = sign_out的用戶。 我猜這是因為當我進入安全頁面時,該頁面上的所有鏈接也都具有secure.website.com/users/sign_out(例如)。

而不是總是在link_to中指定我要使用www作為網址...我想將其設置為默認值。 我嘗試做default_url_options,但似乎沒有用。 除非另有說明,如何確保所有鏈接始終都是www子域?

最后,除非在安全頁面上,否則我一直在保證網頁是www:

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

我把它放在應用程序控制器中作為前置過濾器。 這似乎是一種非常糟糕的方法。 有沒有“正確”的方法? 我只希望一個安全頁面具有不同的子域...否則,請始終使用www。

您可以創建一個方法default_url_options

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

您可以將此方法放在子控制器的應用程序控制器中。 據我所知,您只能設置整個主機,而不能設置子域。 通常,您可以在此方法中放置任何url_for支持的選項。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM