2011-02-06 9 views
0

ネストされたフォームを作成しようとしましたが、これまではうまくいきましたが、ユーザーが選択できるドロップダウンをいくつか置く必要があるだけでなく、いくつかのバリデーションを行う必要があります私が何をしようとしても、エラーは継続しています。ネストされたフォーム内のオプション

3モデル。 --configuration

has_many :configoptions 
    accepts_nested_attributes_for :configoptions 

--configoption

belongs_to :configuration 
    has_many :items 

と今アイテム

belongs_to :configoption 
    scope :sorted, order('items.position ASC') 

、これまでのところ、私はconfigoptionsをループ、ネストされたフォームを作成していますが、それぞれにオプションが複数あります。そこで、私はこのような場合にそれらのオプションのドロップダウンを行いたいと思っています。私の見解では

私が持っている:アイテム:

<p> 
<th>Elements</th> 
<th>Quantity</th> 
</p> 
<%= form_for @config, :url => {:action => 'show', :id => @config.id} do |f| %> 
    <%= f.fields_for :configoptions do |fp| %> 
    <p> 
     <% if :items.count > 1 %> 
     <%= fp.text_field :name %> 
     <% else %> 
     <% fp.select(:items, :name)%> 
     <% end %> 
    <%= fp.text_field :quantity %> 
    </p> 
    <% end %>  
    <%= f.submit %> 
<% end %> 

私は明らかにそれを数えることができないことを私に伝えるエラーを取得します。

私はこの作品をどのように作れると思いますか?

ありがとうございます! 012:@config:for @config、:url => {:action => 'show'、:id => @ config.id} do | f | %> <%= f.fields_for:configoptions do | fp | %>

<% = fp.text_field:IDの%> <% = fp.text_field:名前%> <% = fp.text_field:数量%>

<%端%>
<% = f.submit%> <%end%>

答えて

0

OK、私はそれを考え出したと思う、少なくとも私が今したいことをしているようだ。

ドロップダウンを作成できるように、設定のインスタンスをネストされたフォームに渡すようにビューを変更しました。

<% for configoption in @config.configoptions %>  
    <%= f.fields_for :configoptions, configoption do |fp| %> 
    <p> 
     <% if configoption.items.count > 1 %> 
     <%= fp.select (:name, options_from_collection_for_select(configoption.items.sorted, 'name', 'name'))%> 
     <% else %> 
関連する問題