2017-12-27 9 views
2

このアプリケーションの要点は、「プロ」に複数のビデオシリーズがあり、複数のビデオで構成されていることです。has_many_through関係でフォームデータにアクセスするにはどうすればよいですか?

私の問題は、各プロがいくつかのビデオに登場する可能性のあるところにあります。各シリーズには複数の特集があります。プロとシリーズには多くの「機能」がありますが、各機能は1つのプロとシリーズ(ジョイン・テーブル)に属しています。

は、したがって、私は、次のような私のモデルを宣言:私は賛成論を直列で紹介されている指定したいシリーズを作成するときに

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 

かなり正常なもの、これまで...

しかし、内:〜\ビュー\ 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 

コレクションを選択するには、プロを選択するために、私にドロップダウンメニューを提供し、私はそのための「機能」を作成するために、この情報を使用したいです私のデータベースにはプロがあり、シリーズとプロを一緒にリンクさせることができます。

createメソッドで@ series.features.create(pro_id:@pro.id)または同等の機能を実行できるようにするには、このフォームのデータにアクセスするにはどうすればよいですか?

答えて

0

私は完全に間違っているかもしれないが、私はあなたが@series.pros.create(params)のようなものを実行した場合、あなたは正しく読み込ま結合テーブルで必要なものを持っていると思います。

関連する問題