2009-09-02 53 views
0

photo_albumの更新中にRailsのネストされたフォーム機能を使用して写真を保存するphoto_albumのフォームは次のとおりです。ラジオボタンの値の選択に問題があります。アルバムのカバーとして選択できる写真は1つだけですが、レールでフォームの要素IDと名前が生成されるため、アルバムのカバーとしてすべての写真を選択できます。回避策はありますか?Rails:ネストされたフォームオブジェクトのラジオボタン選択

<% form_for @photo_album do |f| %> 
    <%= f.error_messages %> 

    <% @photo_album.photos.each do |photo| %> 
    <% f.fields_for :photos, photo do |photo_fields| %> 
     <p> 
     <%= image_tag url_for_image_column(photo, "data", :thumb) %> 
     </p> 
     <p> 
     <%= photo_fields.label :title %> 
     <%= photo_fields.text_field :title %> 
     </p> 
     <p> 
     <%= photo_fields.label :body %> 
     <%= photo_fields.text_area :body %> 
     </p> 
     <p> 
     <%= photo_fields.radio_button :cover, "1" %> 
     <%= photo_fields.label :cover, 'Album Cover', :class => 'option' %> 
     <%= photo_fields.check_box :_delete %> 
     <%= photo_fields.label :_delete, 'Delete', :class => 'option' %> 
     </p> 
    <% end %> 
    <% end %> 

    <p> 
    <%= f.submit @photo_album.new_record? ? 'Create' : 'Update' %> 
    </p> 
<% end %> 

そして、次のラジオボタンの(問題の一部である)、レールによって生成htmlです:

<p> 
<input type="radio" value="1" name="photo_album[photos_attributes][0][cover]" id="photo_album_photos_attributes_0_cover_1"/> 
<label for="photo_album_photos_attributes_0_cover" class="option">Album Cover</label> 
<input type="hidden" value="0" name="photo_album[photos_attributes][0][_delete]"/><input type="checkbox" value="1" name="photo_album[photos_attributes][0][_delete]" id="photo_album_photos_attributes_0__delete"/> 
<label for="photo_album_photos_attributes_0__delete" class="option">Delete</label> 
</p> 

答えて

1

私は、このインスタンスであなたの代わりにradio_button_tagを使いたいだろうと推測し、同じ名前を使用してください。

これは近いはずである - あなたはまだあなたが真で渡したいとき把握する必要があります。

<%= radio_button_tag "cover", photo.id, todo %> 

ます。またRADIO_BUTTONヘルパーと名前を指定することができるかもしれないが、それはしませんモデルにかなり合っているので、radio_button_tagは私にとってもっと理にかなっています - 私は間違っているかもしれません。

関連する問題