6 простых, но фундаментальных вопросов в миграции RoR для начинающих - PullRequest
0 голосов
/ 10 января 2012

Привет

У меня есть 6 простых и фундаментальных проблем в миграции RoR, и хотя я гуглил это, прочитал много статей об этом и исследовал их в течение недели, я не понял этого.Пожалуйста, помогите мне с этими проблемами:


1 - Когда я создаю модель (например, "rails Generate Model Football_League"), я вижу в db /igration "create_football_leagues.rb".Я хочу знать, каковы правила RoR для изменения имени, которое я дал своей миграции?(Моя миграция называлась FootballLeague, и ruby ​​создал "create_football_leagues.rb")


2 - Каковы правила присвоения имени ruby ​​для создания класса в этом файле?(Ruby создал класс «CreateFootballLeague» в «create_football_leagues.rb»)


3 - после того, как я использую rake db: migrate, хотя у меня было 3 миграции, я просто вижу ниже в cmd: enter image description hereи я не делал никаких миграций для других 3 миграций, тогда как иногда, когда я запускаю миграцию с помощью rake db: migrate, все мои миграции переносятся.


4 - После того, как я наберу rake db: migrate ипосле этого Rake выполнить «create_football_leagues.rb», я захожу в mysql, и я увидел таблицу с именем «schema_migrations».и в этой таблице есть несколько версий моих миграций.Теперь я хочу знать, для чего применяется такая таблица?


5 - В http://guides.rubyonrails.org Я прочитал, что если мы хотим изменить первичный ключ таблицы с идентификатора по умолчанию нанаше собственное поле, мы должны использовать опцию: primary_key, но я не понимаю, как я могу его использовать. Если кто-то может привести пример для этой темы.


6 - В чем разница между этими двумя командами: 1 - "рельсы генерируют миграцию" 2 - рельсы генерируют модель футбола.Я знал, что с «рельсами генерируем модель футбола» мы должны добавить какой-то дополнительный файл в приложение / модель, но я не понимаю функции этих файлов.

Мой друг, пожалуйста, помогите мне решить эти фундаментальные проблемы.Особая благодарность.

* Моя версия RoR 3.1.3 *

Ответы [ 2 ]

2 голосов
/ 10 января 2012
  1. Если вы генерируете модель, имя мигратона будет create_ + имя класса во множественном числе. Примечание Ваше имя класса должно не содержать подчеркивания.
  2. То же, что и имя файла, но в верблюжьей оболочке, как в соглашении Ruby, вместо подчеркивания.
  3. Предыдущие миграции уже были выполнены.
  4. Отслеживает версию схемы.
  5. См. этот вопрос .
  6. Создается миграция.Создается объект модели Rails, в который входит миграция.
1 голос
/ 10 января 2012

для 3,4:

Допустим, вы создали две миграции. Затем запустите rake db: migrate. Rails теперь создал две таблицы, определенные в ваших миграциях. Кроме того, он записал номера версий этих миграций в таблицу schema_migrations.

Если теперь вы добавите третью миграцию и снова запустите rake db: migrate, Rails увидит в schema_migrations, какие миграции уже выполнены, и пропустите их (в противном случае вы можете потерять данные в этих таблицах!). Таким образом, он только запускает новую миграцию и снова добавляет версию этого в schema_migrations.

Если вы снова запустите rake db: migrate, теперь это ничего не даст.

Для 5: Для новичка без полного понимания Rails вы должны избегать изменения этого параметра.

Для 6: - рельсы порождают миграционный футбол Это только создаст файл миграции. Обычно вы используете эту команду, если хотите изменить существующую таблицу (например, чтобы добавить новые столбцы) - рельсы порождают модель футбола Это создаст модель и миграцию для создания таблицы, принадлежащей этой модели. Модель в Rails - это класс, принадлежащий конкретной таблице (упрощенно, есть и другие применения для моделей). В вашей футбольной модели вы позже будете иметь весь код, который непосредственно связан с футбольным столом в вашей базе данных. Здесь вы определяете отношения и проверки.

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

...