Что не так с этим методом? (Мне нужны отличные Ruby Coders) - PullRequest
0 голосов
/ 12 февраля 2010

Игнорирование требования к роли с помощью метода 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 .

Обе схемы используют один и тот же контроллер. Кроме того, я использую rolerequirement с restfulauthentication, чтобы оба моих представления работали. Я создал методы, которые ищут вашу область (url.com или subdomain.url.com)

Я выделил следующую проблему:

  1. Метод в контроллере вызывает сбой. «NoMethodError Controller: неопределенный метод 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.

Как мне переписать этот метод для работы?

Спасибо!

1 Ответ

0 голосов
/ 12 февраля 2010

Сам метод выглядит нормально.

Поскольку вы получаете ошибку, когда находитесь на subdomain.url.com, но не на url.com, ваша проблема не в определении метода, а в коде, который обрабатывает «изменение субдомена». Это код, который вы должны проверить; похоже, что вы «не включаете» требование о ролях, когда находитесь на subdomain.url.com.

...