簡體   English   中英

在Rails表單中顯示大量嵌套屬性

[英]Displaying an explicit number of nested attributes in a Rails form

給定三個模型:

  1. 文獻
  2. 資產
  3. 資產類別

一個文件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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM