私は、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 を使用します。