What is the correct way to define one to many association in rails 5.we
have currently the following migration files…we have to define
products and categories tables such that one category has many products.
class Category < ApplicationRecord
has_many :products, dependent: :destroy
end
class Product < ApplicationRecord
belongs_to :category, index: true
end
Those look like model definitions not migrations. It looks like you have them declared properly although I’m not sure about the ‘index: true’ on the 2nd declaration. I don’t see that in the Rails API for belongs_to.
class CreateCategories < ActiveRecord::Migration[5.2]
def change
create_table :categories do |t|
t.string :name
t.timestamps
end
end
end
class CreateProducts < ActiveRecord::Migration[5.2]
def change
create_table :products do |t|
t.string :name
t.belongs_to :category, index: true
t.timestamps
end
end
end
The corresponding model association might look like this:
class Category < ApplicationRecord
has_many :products, dependent: :destroy
end
class Product < ApplicationRecord
belongs_to :category
end
This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.