СУХОЙ — не повторяйтесь.

Цель этого принципа — сократить повторение кодов.

Когда вы начнете создавать свое приложение, вы заметите, что продолжаете использовать один и тот же код снова и снова для разных методов. Здесь на помощь приходят вспомогательные методы.

Вспомогательные методы — это написанные вами коды, которые вы можете использовать, чтобы вам не приходилось писать повторяющиеся коды. Когда я делал свой проект 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 как методы экземпляра, я могу просто вызвать их внутри метода без передачи аргумента.

Надеюсь, это поможет.