0

rails 3.1.0 appにはrfq、quote、test_itemがあります。 RFQには多くの見積もりとテスト項目があります。見積もりはrfqに属し、多くのテスト項目を持っています。テスト項目には多くのrfqと引用符があります。関連するレコードの名前を表示する方法3.1.0

引用符を作成するときに、rfq内のテスト項目が直接新しい引用フォームに渡されます。ここでのコードは、引用符コントローラに新しいである:ここで

@quote = @rfq.quotes.new() 
    @quote.test_items << @rfq.test_items 

はRFQから渡されたテスト項目を表示するための見積り新しい形式のビューコードは:

<%= simple_form_for([@rfq, @quote]) do |f| %>  
....   
    <% @quote.test_items.each do |t| %> 
    <p><%= f.association :test_items, :label => false %><%= link_to_remove_fields "remove", f %></p> 
    <% end %> 
.... 
<% end %> 

上記ビューコードを表示することができテスト項目がrfqから渡され、関連が維持されます(引用には多くのテスト項目があります)。ただし、ここでは不要なテスト項目の選択ボックスも表示されます(削除以外のテスト項目を変更することはできません。また、ループ内のtも有効ではありません)。私たちが必要とするのは、テスト項目の名前を表示し、関連付けを維持し(引用には多くのテスト項目があります)、テスト項目を削除できるようにするだけです(link_to_remove_fieldsで完了)。

これを達成する明確な方法はありますか?本当にありがとう。

答えて

1

Railsのネストされた属性メカニズムを見てみましょう。モデルの宣言であるaccepts_nested_attributes_forが必要で、fields_forフォームヘルパでサポートされており、シンプルフォームのsimple_fields_forとも互換性があります。

test_itemsを明示的にループし、別のtest_itemを選択するようにフォームに指示するf.assocationを呼び出してください。あなたがしようとしているのは、ユーザーにtest_itemsのチェックボックスを外すことです。 fields303を使用して暗黙的にtest_itemsのリストをループし、削除を許可するにはnested_attributesを使用する必要があります。

+0

アソシエーションの前にsimple_fields_forを使用しようとしましたが、何とかそれを正しく取得できませんでした。 – user938363

+0

@ user938363試したコードを投稿できますか? –

関連する問題