Я пробовал фреймворк Padrino в одном из своих проектов, и есть одна вещь, которая меня очень раздражает. Я хочу, например, реализовать процесс регистрации пользователя с использованием OmniAuth и хочу разбить обработчик запросов (действие контроллера) на отдельные методы, например:
get ":provider/callback" do @user = find_the_user_by_oauth(request) create_user unless @user store_user_in_session end def find_the_user_by_oauth(request) #... end def store_user_in_session session[:user_id] = @user.id end
Я знаю, что было бы лучше перенести логику на уровень модели, но мой вопрос в том, как я могу разбить логику контроллера на отдельные методы и обмениваться информацией между ними (например, используя переменные экземпляра). В Rails я создал эти методы в приватной области своего контроллера, но здесь я должен расширить класс Application, потому что он вызывает исключение метода Undefined для предыдущего кода. Я пробовал помощники, но помощники не знают переменных экземпляра, поэтому вы должны передавать переменные каждый раз.
Каков хороший способ сделать мои действия контроллера чистыми в Padrino?