为什么在使用 new/save 与 create 时,在 rails 中创建的 has_many through 的连接表不是?

问题描述

这是在 Rails 4.2.11.3 上。我有一个 has_many through 关系设置如下:

class ProgramCourse < ActiveRecord::Base
  belongs_to :course
  belongs_to :program
end

class Course < ActiveRecord::Base
  has_many :program_courses
  has_many :programs,-> { uniq },through: :program_courses
end

class Program < ActiveRecord::Base
  has_many :program_courses
  has_many :courses,through: :program_courses
end

如果我创建这样的课程:

c = program.courses.create(name: 'Amazing Course')

ProgramCourse 记录与新的 Course 一起创建。但是,如果我这样做:

c = program.courses.new(name: 'Amazing Course')
c.save

仅创建 Course。这是一个错误吗?我的关系在语法上有什么问题吗?谁能解释为什么这两个不同?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)