2017-12-01 14 views
0

私は作成している主オブジェクトで複数の関連オブジェクトを作成できるフォームを作成したいと思っています。私のモデルは以下の通りです:親オブジェクトの複数の関連オブジェクトを作成するためのRailsフォーム

class Bucket < ApplicationRecord 
    has_many :resources 
    belongs_to :user 
end 

class Resource < ApplicationRecord 
    belongs_to :model 
    has_attached_file :artifact 
end 

バケットオブジェクトの作成中に複数のリソースオブジェクトを作成できます。したがって、新しいバケットを作成する場合、同じフォームに複数のリソースオブジェクトを作成することもできます。

私は意味があることを望みます!

答えて

0

accepts_nested_attributes_forを使用してこれを達成できます。

class Bucket < ApplicationRecord 
    has_many :resources 
    belongs_to :user 
    accepts_nested_attributes_for :resources 
end 

class Resource < ApplicationRecord 
    belongs_to :model 
    has_attached_file :artifact 
end 

を入力し、この形式で投稿要求を送信することでバケットを作成することができます。

bucket: { 
    resources_attributes: [ 
    // resource objects go here 
    ] 
} 

fields_forを使用して、あなたは、フロントエンド部に

<%= form_for @bucket do |bucket_form| %> 
    // bucket form fields go here 

    <%= bucket_form.fields_for :resources do |resource_fields| %> 
    // resource fields go here 
    <% end %> 
<% end %> 

をレールを使用している場合そして、あなたはfields_forためのより多くのオプションのためのマニュアルを確認することができます。

+0

ありがとうございました!その解決策は理にかなっています。 –

+0

問題なし!どういたしまして :) – Joe

関連する問題