我一直在努力解决可能非常明显的事情:
当我尝试将课程分配给用户时,我认为不允许一门课程包含在多个用户的集合中。
我有一个方法可以遍历每个用户并将每门课程的一个小节分配给该用户。只有最后几个用户有课程分配给他们。我想这是因为两者的关系是作为字段存储在课程表中的,所以一门课程只能属于一个用户。我希望课程属于许多用户。
想一想,我假设这是因为我需要除了 has_many 之外的另一种关系?喜欢HABTM?
我想我对 AR 关联的工作方式感到困惑......
用户.rb
class User < ActiveRecord::Base
has_many :courses
has_many :bookmarks, :class_name => 'Course'
attr_accessible :email, :password, :courses, :bookmarks
validates_presence_of :password, :on => :create
validates_presence_of :email, :on => :create
validates :password, :length => { :in => 6..20 }
validates_format_of :email, :with => /^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i
validates_uniqueness_of :email
end
# == Schema Information
#
# Table name: users
#
# id :integer not null, primary key
# email :string(255)
# password_digest :string(255)
# course_id :integer
# bookmark_id :integer
# created_at :datetime not null
# updated_at :datetime not null
#
课程.rb
class Course < ActiveRecord::Base
attr_accessible :name
end
# == Schema Information
#
# Table name: courses
#
# id :integer not null, primary key
# name :string(255)
# created_at :datetime not null
# updated_at :datetime not null
# user_id :integer
#