постоянные величины в направляющих

21
задан Sarah Vessels 11 December 2008 в 22:30
поделиться

5 ответов

Я верю тому, что Вы в настоящее время делаете, прекрасен; Вы сказали, что данные только принадлежат одному контроллеру, и поэтому это - то, где это принадлежит. Если было необходимо для нескольких контроллеров, или если они были более сложными, чем постоянные величины, другие подходы могут иметь смысл.

9
ответ дан J Cooper 29 November 2019 в 03:55
поделиться

Для констант, которые действительно не принадлежат больше нигде, у меня есть класс StaticData.

  class StaticData

    GRAPH_TYPES = ['bar', 'line']

    SOMETHING_ELSE = ['A', 'B']

  end

Тогда я достигаю его с

StaticData::GRAPH_TYPES
30
ответ дан user37011 29 November 2019 в 03:55
поделиться

Да, что Вы делаете, прекрасен. Это - больше идиоматического Ruby для вызова константы GRAPH_TYPES все же.

Кстати, я постарался бы не определять initialize в Ваших контроллерах. Кажется, что это могло вести для беспокойства.

4
ответ дан Dathan 29 November 2019 в 03:55
поделиться

Если Вы генерируете формы, которые связаны с некоторым ресурсом тогда, то это будет хороший вариант для хранения его в моделях. Вы не должны хранить его в DB, потому что это может быть простой класс или переменные/методы экземпляра.

та же идея для проверки. При проверке экземпляров ресурсов/модели тогда, это будет разумный выбор сохранить параметры проверки в образцовом классе.

Так или иначе, это будет намного ближе к 'массивному образцовому и тонкому контроллеру' шаблон тогда любой из вариантов, которые Вы упомянули.

1
ответ дан IDBD 29 November 2019 в 03:55
поделиться

Я соглашусь кое в чем с IDBD и paradisepete. Использование констант в модели было бы лучшим способом сделать контроллер тонким, а модель толстой. см. Советы по просмотру Rails Например, если у вас есть контроллер метрик, связанный с метрической моделью. В метрической модели class Metric

Затем в представлении вы можете сделать что-то вроде

f.select: graph_type, Metric :: GRAPHTYPES

3
ответ дан 29 November 2019 в 03:55
поделиться
Другие вопросы по тегам:

Похожие вопросы: