2016-09-16 79 views
-1

假設我們有一個具有name屬性的User模型。 我想創建一個包含多個文本字段的表單,以在數據庫中創建多個記錄。我能夠使用form_tag完成此操作,但有沒有辦法使用form_for來完成它?Rails - 以一種形式創建一個模型的多個記錄

+0

可以使另一個模型稱爲用戶名,讓你的form_for內多個嵌套形式。 – luissimo

回答

1

要使用form_for做到這一點是可能的,但因爲這是真的不是涉及到一個單一的模型實例的形式,你真的應該堅持form_tag

做它作爲form_for每個名字必須是屬性。

你可以做(​​在你的模型)......

attr_accessor :name1, :name2, :name3 

這將讓即使他們不是在數據庫表列的其他名稱被接受。

在創建方法

則...

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

相關問題