Модели без раздувания в рельсах 3.1 - PullRequest
0 голосов
/ 24 февраля 2012

Просто изучаю рельсы, разрабатываю первое приложение и испытываю трудности с нахождением прямого ответа на этот вопрос!

Я хочу, чтобы мои модели были максимально простыми, и я действительно хочу использовать их только для представления объектов, которые я мог быхочу сделать в моих взглядах.Поэтому я хочу удалить часть логики из одной конкретной модели и сохранить ее в отдельном файле.Я видел множество руководств (на этом и других сайтах), которые предлагают следующее:

  • никогда "не требует" ничего из приложения rails
  • Храните дополнительные файлы в папке lib -Раньше они автоматически загружались в старых версиях rails, но теперь вам нужно добавить дополнительную строку в файл конфигурации, чтобы это произошло (Пример.

Поэтому я добавил строку, вставив файл впапка lib, и все работало нормально. Итак, к вопросу;

Я не могу избавиться от ощущения, что тот факт, что мне пришлось пойти и поместить какой-то сделанный на заказ код в файл конфигурации, означает, что яделать это неправильно (с учетом соглашения о конфигурации). Почему людям приходится возиться с редактированием файлов конфигурации, чтобы заставить рельсы делать что-то настолько простое?

Это лучший способ или есть дополнительные соображения, что я простоне вижу? Должен ли я на самом деле создавать каталог "extras", а не вставлять вещи в lib?

Если кто-то может указать мне направление рекламыстатья по этому вопросу, я был бы очень признателен!

Ответы [ 2 ]

2 голосов
/ 25 февраля 2012

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

0 голосов
/ 24 февраля 2012

что я делаю, так это: сохраняйте логику модели в модели и держите контроллеры как можно более тонкими

Если есть вещи, которые должны принадлежать вашей модели, но несколько далеки от нее (например, выу вас есть модель Account, и вы работаете в какой-то платежной системе, которая относится к Account - например, вы можете позвонить account.has_subscription?, вы можете использовать гем под названием able_with , который разделитОсновные действия вашей модели со стороны других, такие как те, которые обрабатывают платежи (это всего лишь пример, о котором мне недавно пришлось позаботиться).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...