[英]Displaying a fixed number of children in a form using accepts_nested_attributes_for
[英]Displaying an explicit number of nested attributes in a Rails form
給定三個模型:
一個文件accepts_nested_attributes_for資產(一個文件有很多資產),並且一個資產屬於一個資產類別。
我想為每個資產類別的資產屬性顯示一個字段。
我目前正在實現以下目標。 控制器:
def new
@document = Document.new
@asset_categories = AssetCategory.all
@asset_categories.count.times { @document.assets.build }
end
視圖(此示例使用Formtastic提供的語義_fields_for方法,但這只是fields_for的薄包裝):
i=0
f.semantic_fields_for :assets do |asset_form|
asset_form.input :attachment, :label => @asset_categories[i].name
asset_form.input :asset_category, :as => :hidden, :value => @asset_categories[i].id
i+=1
end
有沒有更清潔的方法呢? 我不太喜歡臨時變量i。
在控制器中:
def new
@document = Document.new
AssetCategory.all.each do |ac|
@document.assets.build :asset_category_id=>ac.id
end
end
在視圖中:
f.semantic_fields_for :assets do |af|
af.input :attachment, :label=>af.object.asset_category.name
af.input :asset_category_id, :as => :hidden, :value => af.object.asset_category.id
end
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.