2016-09-16 20 views
-1

名前属性を持つUserモデルがあるとします。 複数のテキストフィールドを持つフォームを作成して、データベースに複数のレコードを作成したいとします。私はform_tagを使ってこれを達成することができましたが、form_forを使ってこれを行う方法はありますか?1つのモデルの複数のレコードを1つの形式で作成する

+0

ユーザー名と呼ばれる別のモデルを作成し、あなたのform_for内に複数のネストされたフォームを作ることができます。 – luissimo

答えて

1

form_forでこれを行うには可能であるが、これは実際には単一モデルのインスタンスに関連する形ではないので、あなたは本当に、すべての名前は属性である必要がありますform_forようにそれを行うにはform_tag

に固執する必要があります。

あなたは(あなたのモデルに)行うことができます

...

attr_accessor :name1, :name2, :name3 

これは、追加の名前は、それらがdbテーブル内の列じゃないにもかかわらず、受け入れられるようになります。

その後、あなたの方法を作る...

def create 
    %i(name name1 name2 name3).each |this_name| 
    User.create(name: user_params(this_name)) if user_params(this_name).present? 
    end 
end 


def user_params 
    params.require(:user).permit(:name, :name1, :name2, :name3) 
end 
+0

私は私のために維持しやすいように私は私のform_tagに固執します。スティーブありがとう! – Ancinek