У меня небольшая проблема с постоянной областью в модулях mixin. Скажем, у меня есть что-то вроде этого
module Auth
USER_KEY = "user" unless defined? USER_KEY
def authorize
user_id = session[USER_KEY]
def
end
Константа USER_KEY должна по умолчанию "пользователь", если она уже не определена. Теперь я могу смешать это в нескольких местах, но в одном из этих мест USER_KEY должен быть другим, поэтому у нас может быть что-то вроде этого
class ApplicationController < ActionController::Base
USER_KEY = "my_user"
include Auth
def test_auth
authorize
end
end
Я бы ожидал, что USER_KEY будет "my_user" при использовании в authorize, поскольку он уже определен, но он все еще "пользователь", взятый из определения модулей USER_KEY. Кто-нибудь знает, как получить авторизацию для использования версии классов USER_KEY?