Как я создаю много-одно отношения с помощью Лесов?

Я плохо знаком с Ruby on Rails, и я пытаюсь создать обучающую программу бас-гитары, чтобы преподавать мне RoR (и бас-гитара). Пошаговые демонстрации используют Леса для создания классов ActiveRecord, но они, кажется, соответствуют автономным таблицам; там нет смысла belongs_to или has_many.

Я хотел бы создать три класса: Масштаб, GuitarString и Раздражение. Каждый Масштаб имеет многие GuitarStrings, которые у каждого есть много Раздражений.

Как я создаю классы с этими отношениями с помощью Лесов? Существует ли способ сделать это сразу, или я должен создать их в несвязанном состоянии с помощью Лесов, затем добавить отношения вручную? Или действительно ли я должен угробить Леса полностью?

12
задан Simon 4 April 2010 в 17:14
поделиться

1 ответ

Я начал изучать Ruby on Rails несколько недель назад, и мне стало намного проще научиться чему-то и научиться без использования шаблонов и создания различных частей из командной строки (или макросов в среде IDE).

Однако, насколько я могу судить, когда вы используете строительные леса для создания вещей, вы думаете об этом как о создании «ресурса», поэтому вы собираетесь создавать только один ресурс за раз, а затем добавлять отношения с помощью рука позже.

Однако команда создания модели может создать эти отношения за вас. Допустим, вы использовали скаффолдинг для создания ресурса Scale.

Затем вы можете сделать

ruby script/generate model GuitarString name:string scale:references 

Scale: ссылки создадут own_to: scale в вашей модели GuitarString, но вам нужно будет добавить has_many: гитарные струны в вашу масштабную модель.

Команда generate model также создает сценарий миграции для вас и других необходимых файлов (фикстур), аналогично формированию шаблонов, но не создает автоматически представления, контроллеры или что-то еще.

РЕДАКТИРОВАТЬ:

Обычно это то, как вы собираетесь что-то делать - использовать генерацию / модель или сгенерировать / просмотреть, или сгенерировать / контроллер, или сгенерировать / миграцию.Большинство разработчиков Rails не используют скаффолдинг, поскольку его «один размер подходит всем» редко подходит идеально. Однако большинство разработчиков rails действительно используют упомянутые мною команды генерации - это экономит время, создавая помощники и фикстуры вручную, и дает каждому генерируемому файлу базовый шаблон, к которому вы можете добавить.

Некоторые среды разработки Ruby, такие как RubyMine от JetBrain, имеют макросы, которые по сути выполняют эти команды. В RubyMine вы можете нажать ctrl + alt + g, а затем ввести другой ключ, соответствующий тому, что вы хотите сгенерировать.

Как я уже упоминал, отношение принадлежит_то может быть сгенерировано с помощью слова «ссылки». Остальные вы добавите вручную.

17
ответ дан 2 December 2019 в 19:53
поделиться
Другие вопросы по тегам:

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