【发布时间】:2017-05-07 07:09:09
【问题描述】:
我的应用中有一个现有的数据库迁移,其中包含以下内容:
class User < ApplicationRecord
has_many :courses
end
class Course < ApplicationRecord
belongs_to :user
has_and_belongs_to_many :locations
has_and_belongs_to_many :categories
end
每个用户可以在like 或dislike 为课程投票一次,所以我在db/migrate 中创建了一个连接表:
class CreateUsersCourses < ActiveRecord::Migration[5.0]
def change
create_table :users_courses do |t|
t.integer :course_id, null: false
t.integer :user_id, null: false
end
end
现在我不确定如何在 User 和 Course 模型中添加新关系,使其不会与一对多关系重叠。
【问题讨论】:
-
每个
Course可以只属于一个User吗? -
是的,因为这里的情况是
User创建Course。现在想做User投票Course,不知道怎么添加新关系。 -
难道你不能在
Course模型上拥有类似/不喜欢的列吗?这可能看起来不正统,但如果Course只属于一个User,这是最简单的解决方案
标签: ruby-on-rails activerecord relationship