在子域范围内使用 restfulauthentication 方法忽略角色要求
我创建了一个站点,该站点使用子域并搜索用户是否位于: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一起使用,为了让我的两个视图都起作用,我创建了搜索范围(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 错误。
我怎样才能重写这个方法来运行?
谢谢!