鉴于三种模式:
文档accepted_nested_attributes_for资产(文档has_many资产),资产belongs_to资产类别。
我想为每个资产类别显示资产属性的字段。
我目前正在实现以下目标。控制器:
def new
@document = Document.new
@asset_categories = AssetCategory.all
@asset_categories.count.times { @document.assets.build }
end
View(此示例使用Formtastic提供的semantic_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。
答案 0 :(得分:0)
在控制器中:
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