Создание читаемых моделей в рельсах - PullRequest
0 голосов
/ 02 декабря 2010

Я только начал с Rails и пришел из .net фона. Я считаю, что модель, унаследованную от ActiveRecord, трудна для понимания, поскольку не содержит соответствующих атрибутов для модели.Я не могу представить, чтобы новый разработчик столкнулся с большим кодом, в котором модели содержат ссылки только на другие модели и бизнес-логику.

С моей точки зрения, модель DataMapper гораздо проще понять, но ActiveRecord является стандартом де-фактопросто странно менять ORM только для этой маленькой проблемы.

DataMapper

class Post
  include DataMapper::Resource

  property :id,         Serial    # An auto-increment integer key
  property :title,      String    # A varchar type string, for short strings
  property :body,       Text      # A text block, for longer string data.
  property :created_at, DateTime  # A DateTime, for any date you might like.
end

ActiveRecord

 class Post < ActiveRecord::Base
 end

Я не уверен, что это проблема, и что люди привыкли к моделям без атрибутов, или как опытный пользователь rails справляется с этим?

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

Задание attr_accessible сделает модель более читабельнойно я не уверен, что это правильное решение для моей проблемы?

Ответы [ 3 ]

4 голосов
/ 02 декабря 2010

Проверьте плагин annotate_models на github. Он вставит закомментированную схему для каждой модели в блоке комментариев. Он может быть установлен для запуска при миграции.

2 голосов
/ 03 декабря 2010

Несколько советов:

  • Загрузите консоль Rails и введите Post.column_names для быстрого напоминания имен атрибутов.Post.columns предоставляет вам объекты столбца, которые показывают типы данных

  • db / schema.rb содержит весь код миграции в одном месте, поэтому вы можете легко увидеть все определения столбцов.

  • Если вы используете приличный редактор / IDE, должен быть способ, позволяющий перейти из файла модели в файл миграции.(например, Emacs с ROR или Rinari)

2 голосов
/ 02 декабря 2010

Вам не нужно «смотреть на множество скриптов миграции, чтобы найти атрибуты» - они все определены в одном месте в db / schema.rb.

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