这个应用程序的要点是' Pros'有多个视频系列,由多个视频组成。
我的问题在于每个专业版可以在多个视频中展示,每个系列都可能包含多个专业人士。我把它设置为“有很多通过'关系,职业选手和连续剧可能有很多特点。但每个功能属于一个专业版和系列(连接表)。
因此我宣布我的模型是这样的:
class Pro < ApplicationRecord
has_many :features
has_many :series, through: :features
end
class Series < ApplicationRecord
has_many :features
has_many :pros, through: :features
has_many :videos
end
class Feature < ApplicationRecord
belongs_to :pro
belongs_to :series
end
专业人士以他们自己的形式正常创建,但是在创建系列时,我想指定系列中的哪些专业人士。
我曾尝试过:
def new
@pro = Pro.new
end
def create
@pro = Pro.new(pro_params)
if @pro.save
redirect_to pros_path
else
render 'edit'
end
end
到目前为止相当正常的东西......
但是,在:〜\ views \ series_form.html.haml中。 我试图从下拉框中为系列选择专业人士...
= form_for @series do |f|
%p
Title:
= f.text_field :title
= fields_for(@series, @series.pros) do |u|
%p= collection_select(:pro, :pro_id, @pros.all, :id, :name, prompt: :true)
%p= f.submit "Submit"
link_to "Back", root_path
收藏选择为我提供了一个下拉菜单来选择专业人士,我想使用这些信息创建一个&#39;功能&#39;对于我的数据库中的专业人士,允许我将系列和专业人士链接在一起。
如何访问此表单中的数据,以便在create方法中运行@ series.features.create(pro_id:@ pro.id)或等效文件?
答案 0 :(得分:0)
我可能完全错了,但我认为如果您运行类似@series.pros.create(params)
的内容,则可以正确填充连接表,从而获得所需的内容。