0

在子域范围内使用 restfulauthentication 方法忽略角色要求

我创建了一个站点,该站点使用子域并搜索用户是否位于:subdomain.domain.comdomain.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)的方法

我已经隔离了以下问题:

  1. 控制器中的方法导致失败。“NoMethodError 控制器:未定义的方法‘require_role’”
  2. 如果控制器在正确的范围内,则 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​​ 错误。

我怎样才能重写这个方法来运行?

谢谢!

4

1 回答 1

0

该方法本身看起来不错。

由于您在使用 subdomain.url.com 时遇到错误,但在使用 url.com 时不会出现错误,因此您的问题不在于方法定义,而在于处理“子域更改”的代码。那是您应该检查的代码;当您在 subdomain.url.com 上时,看起来好像您“不包括”角色要求。

于 2010-02-12T09:37:14.893 回答