Подтвердить что ты не робот

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

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

Я хотел бы создать три класса: Scale, GuitarString и Fret. В каждой шкале имеется много гитарных струн, каждая из которых имеет много фрейтов.

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

4b9b3361

Ответ 1

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

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

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

Тогда вы могли бы сделать

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

Масштаб: ссылки создадут belongs_to :scale в вашей модели GuitarString, но вам нужно будет добавить has_many: guitarstrings в вашу модель масштаба.

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

EDIT:

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

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

Отношение role_to может быть сгенерировано с использованием слова "ссылки", как я уже упоминал. Другие вы добавите вручную.