Я знаю, что, вообще говоря, включение кода контроллера в представления не очень хорошая идея. Однако есть ли случаи, когда это не совсем верно? Например, как насчет этого примера:
<%= link_to "Upgrade (costs #{ Skill.get_profession_cost('Admin')} gold)" ...
В этом примере мне нужно получить стоимость профессии для более чем одной роли (Администратор, Пользователь и более). Поэтому существует много ссылок, подобных приведенной выше. Теперь вопрос в том, что является лучшей практикой для этого. Я могу придумать 3 способа:
Как показано выше.
Используйте помощника и получите стоимость (недостаток - мне все равно нужна функция get_profession_cost в модели, так как я использую ее в контроллере; таким образом, помощник мне кажется немного избыточным). Более того, я считаю помощника кодом, который все равно должен быть в контроллере.
Получите заранее организованный хеш, например:
Пользователь => 1000, Администратор => 3000 ... и более. Это более громоздко и довольно утомительно для создания.
Мне бы очень хотелось ваше мнение. Есть ли лучший способ, и если нет, какой бы вы предпочли?