0

私は、secure.website.com に 1 つの安全な支払いページを持っています。その特定のページでdeviseを使用してサインアウトすると、id=sign_outのユーザーがいないと言ってサインアウトが中断します。これは、安全なページにいるときに、そのページのすべてのリンクにも secure.website.com/users/sign_out (たとえば) があるためだと推測しています。

link_to の URL として www を使用することを常に指定するのではなく、デフォルトに設定したいと考えています。default_url_options を実行しようとしましたが、うまくいかないようです。特に指定がない限り、すべてのリンクが常に www サブドメインであることを確認するにはどうすればよいですか?

最後に、安全なページがこれでない限り、ページが www であることを保証するために私が行ってきたことは次のとおりです。

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

これをアプリケーション コントローラに before フィルタとして入れます。これは本当に悪い方法のようです。「正しい」方法はありますか?1 つの安全なページに別のサブドメインを持たせたいだけです...それ以外の場合は、常に 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 に答える