Лучший способ обработки констант вида и только для помощников в Rails - PullRequest
24 голосов
/ 16 февраля 2010

У меня есть константа, которая используется только в представлениях, но она используется по-разному в разных местах. Это массив имен опций, который используется для полей выбора, но я также использую это в других представлениях, чтобы увидеть, найдены ли строки в этом массиве, и ответить соответствующим образом.

Какой лучший способ справиться с этим, чтобы сохранить СУХОЙ?

Сначала я создал константу в помощнике, но, похоже, она недоступна в представлениях.

С тех пор я переключился на создание метода в помощнике, который ничего не делает, кроме как возвращает константу. Тем не менее, это действительно противоречит духу Rails, поскольку сейчас я использую константу в нижнем регистре.

Конечно, я мог бы вставить это в модель, но это не имеет никакого отношения к любой из моделей.

Ответы [ 2 ]

39 голосов
/ 16 февраля 2010

Вы можете определить константы в помощниках, но вам нужно будет ссылаться на них по их полному имени в ваших представлениях.

application_helper.rb

module ApplicationHelper
  MyConstant = "something"
end

В любом представлении:

<%= ApplicationHelper::MyConstant %>
4 голосов
/ 16 февраля 2010

Поместите его в config/initializers/constants.rb, и оно будет доступно везде.

...