我正在尝试创建一个电影应用,其中电影可以具有多个类别,而一个类别可以具有多个电影。我想访问这样的电影类别:
aMovie.categories
我希望该查询返回ActiveRecord_Associations_CollectionProxy
反之亦然
aCategory.movies
下面是我的模型和迁移
class Movie < ApplicationRecord
validates :name, presence: true
end
class Category < ApplicationRecord
validates :name, presence: true
end
class CreateMovies < ActiveRecord::Migration[5.2]
def change
create_table :movies do |t|
t.string :name
t.text :description
t.integer :year
t.float :rating
t.timestamps
end
end
end
def change
create_table :categories do |t|
t.string :name
t.timestamps
end
end
end
我应该如何调整迁移和模型?
预先感谢
答案 0 :(得分:1)
您应该创建中间联接表
Movie_categories
belongs_to :movie
belongs_to :category
Movie
has_many :movie_categories
has_many :categories, through: :movie_categories
Category
has_many :movie_categories
has_many :movies, through: :movie_categories
您可以通过https://guides.rubyonrails.org/association_basics.html中的关系来引用has_many