サブドメイン スコープで restful 認証方式を使用して rolerequirement を無視する
サブドメインを利用し、ユーザーが にいるかどうかに関係なく検索するサイトを作成しました:subdomain.domain.com
またはdomain.com
. ユーザーがいる場合は、ユーザーがいる場合は、が表示subdomain.domain.com, /views/layouts/application.html.erb
されdomain.com /views/layouts/promo_site.html.erb
ます。これを達成するために、Robby on Railsの指示に厳密に従いました。
どちらのレイアウトも同じコントローラーを使用します。さらに、両方のビューが機能するように、 restfulauthenticationで rolerequirement を使用して、スコープ (url.com または subdomain.url.com) を検索するメソッドを作成しました。
次の問題を特定しました。
- コントローラー内のメソッドが失敗の原因です。「NoMethodError コントローラー: 未定義のメソッド `require_role'」
- コントローラーが正しいスコープ url.com 内にある場合、
before_filter :check_if_role_is_required
メソッドは正常に機能します。subdomain.url.com スコープ内にある場合、check_if_role_is_required
メソッドは NoMethodError を生成します。
次のコードは次のとおりですcheck_if_role_is_required method
。
def check_if_role_is_required
require_role ["alt", "student worker"], :except => [:list, :show, :index, :create] unless promo_site?
end
*上記のコードrequire_role ["alt", "student worker"], :except => [:list, :show, :index, :create]
は が開始されたときに失敗することに注意してください。このコードは check_if_role_is_required メソッドの外では正常に機能するため、これはおそらく単純な ruby エラーです。
このメソッドを機能するように書き直すにはどうすればよいですか?
ありがとう!