这个应用程序的要点是“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
Collection select 为我提供了一个下拉菜单来选择一个专业人士,我想使用此信息在我的数据库中为该专业人士创建一个“功能”,从而允许我将系列和专业人士链接在一起。
How can I access the data in this form so I can run @series.features.create(pro_id: @pro.id) or equivalent in the create method?
最佳答案
我可能完全错了,但我认为如果你运行类似 @series.pros.create(params)
的东西,你将拥有正确填充连接表所需的内容。
关于ruby-on-rails - 如何通过关系访问 has_many 的表单数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47999457/