СУХОЙ — не повторяйтесь.
Цель этого принципа — сократить повторение кодов.
Когда вы начнете создавать свое приложение, вы заметите, что продолжаете использовать один и тот же код снова и снова для разных методов. Здесь на помощь приходят вспомогательные методы.
Вспомогательные методы — это написанные вами коды, которые вы можете использовать, чтобы вам не приходилось писать повторяющиеся коды. Когда я делал свой проект Sinatra, я использовал два вспомогательных метода, которые помогли мне сохранить мой код СУХИМ.
Из того, что я знаю сейчас, есть два способа использования вспомогательных методов: создать helper.rb в каталоге моделей и написать методы в классе Helper или добавить методы в applicationcontroller.rb в каталоге контроллеров.
Расскажу только о том, что использовал в своем проекте — добавил методы в Application Controller.
Я использовал два вспомогательных метода: logged_in?
(проверяет, есть ли пользователь, вошедший в систему) и current_user
(проверяет, кто является текущим пользователем).
Вот как это выглядит в моем Application Controller:
helpers do def logged_in? !!current_user end def current_user @user = User.find_by_id(session[:user_id]) end end
Поскольку эти вспомогательные методы находятся внутри Application Controller как методы экземпляра, я могу просто вызвать их внутри метода без передачи аргумента.
Надеюсь, это поможет.