Есть ли способ генерировать модель Rails с предопределенным предопределенным множеством? Я знаю, как добавить его в Active Record после факта, но было бы неплохо, если бы он был определен в миграции DB и в модели Active Record с места в карьер.
Создание модели со многими для многих в Ruby on Rails
Ответ 1
Помните, что вам не нужен идентификатор для таблицы соединений, поэтому обязательно добавьте :id => false |t|
create_table assemblies_parts, :id => false do |t|
t.integer :assembly_id
t.integer :part_id
end
Если вы используете рельсы
rails generate model Assemblies_parts assembly:references part:references
у вас будет два индекса, но вы хотите
# Add table index
add_index :assemblies_parts, [:assembly_id, :part_id], :unique => true
ОБНОВИТЬ
- Для Rails 5 используйте вместо этого
create_join_table
для создания этой таблицы (без идентификатора).
Ответ 2
Вы можете использовать эту ссылку в Rails Guides. Вот ссылка. Также вам нужно вручную создать таблицу соединений для этих моделей с помощью миграции.
например
create_table :assemblies_parts, :force => true do |t|
t.integer :assembly_id
t.integer :part_id
end
Ответ 3
Пожалуйста, сначала посмотрите на этот вопрос: создание отношения "многие ко многим" в Rails 3.
Кроме того, я бы порекомендовал следующую книгу "Учебник по Ruby on Rails 3: изучение Rails на примере" для лучшего понимания отношений ActiveRecord
.