От Django до Rails, как вы постоянно работаете с моделями Rails? - PullRequest
3 голосов
/ 20 декабря 2011

Недавно я перешел от разработки django к работе на рельсах на полную ставку, это довольно маленький магазин, и я собираю вещи из книг и сам по себе.

На прошлой неделе я получил сильный удар по своей ментальной модели, когда узнал, что модели рельсов не отражают содержимое в базе данных.

См. Пример различий: http://www.peterkrantz.com/2009/rails-grails-django-models/

Что меня интересует, так это как мне постоянно модифицировать модель для поддержки новых типов данных и отношений?

Кроме того, есть ли способ иметь все атрибуты в таблице для определенного класса, показанного в файле моделей?

Спасибо

Ответы [ 2 ]

5 голосов
/ 20 декабря 2011

Я думаю, миграции - это то, что вы ищете.

Если вы хотите, чтобы все столбцы отображались в файле модели, используйте annotate gem

1 голос
/ 20 декабря 2011

Это зависит от используемой вами ORM.Хотя ActiveRecord действительно получает схему из базы данных, Mongoid предлагает аннотировать ваши модели.Вот одна из моделей из моего текущего проекта:

class DailyStat

  include Mongoid::Document

  identity :type => String

  field :app_id, :type => Integer
  field :date, :type => DateTime

  field :stats, :type => Hash
  field :totals, :type => Hash
  field :counts, :type => Hash
end

Это так из-за бессхемного характера MongoDB.Без таких объявлений все поля будут иметь динамический тип (по умолчанию String).А объявления помогают применять типы.

Кроме того, с MongoDB у вас нет миграций, и annotate gem здесь не поможет.

...