【发布时间】:2021-01-18 12:22:04
【问题描述】:
我有一个系统,管理员可以在其中创建考试并根据他们销售考试的分支机构定价。例如,考试一在第一分支机构的成本为 5 美元,而在第二分支机构则为 10 美元。
我制作了一个名为 ExamOffering 的连接表,其中包含考试价格,因此每个考试可以在多个分店以不同的价格出售,每个分店可以有多个考试。像这样:
class Branch < ApplicationRecord
has_many :exam_offerings
has_many :exams, through: :exam_offerings
end
class Exam < ApplicationRecord
has_many :exam_offerings
has_many :branches, through: :exam_offerings
end
class ExamOffering < ApplicationRecord
# this class has a 'price' attribute
belongs_to :exam
belongs_to :branch
end
我需要能够创建一个新的考试并在表单中选择一个分支才能输入价格,但该属性不是考试模型的一部分,而是 ExamOffering 连接表。我尝试了一些方法但失败了(在考试模型中使用accepts_nested_attributes_for :exam_offerings 或遍历所有分支并为控制器中的每个分支创建ExamOfferings)。这样做的“Rails 方式”是什么?我认为这是一个很常见的情况,但我还没有找到适合我的情况的答案。也许这有一个名字,我不知道。
可以这样表述:当我创建一个新的考试时,我希望能够为每个现有的分支输入一个价格。
谢谢。
【问题讨论】:
标签: ruby-on-rails-5 nested-attributes has-many-through