Я плохо знаком с Ruby on Rails, и я пытаюсь создать обучающую программу бас-гитары, чтобы преподавать мне RoR (и бас-гитара). Пошаговые демонстрации используют Леса для создания классов ActiveRecord, но они, кажется, соответствуют автономным таблицам; там нет смысла belongs_to
или has_many
.
Я хотел бы создать три класса: Масштаб, GuitarString и Раздражение. Каждый Масштаб имеет многие GuitarStrings, которые у каждого есть много Раздражений.
Как я создаю классы с этими отношениями с помощью Лесов? Существует ли способ сделать это сразу, или я должен создать их в несвязанном состоянии с помощью Лесов, затем добавить отношения вручную? Или действительно ли я должен угробить Леса полностью?
Я начал изучать 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, а затем ввести другой ключ, соответствующий тому, что вы хотите сгенерировать.
Как я уже упоминал, отношение принадлежит_то может быть сгенерировано с помощью слова «ссылки». Остальные вы добавите вручную.