0

quote获取rfq创建报价时已知的测试项目(在 中@rfq.test_items)。表quote_test_items 存储报价(@quote.quote_test_items)的所有测试项目。

quote模型中,有:

accepts_nested_attributes_for :quote_test_items, :reject_if => proc {|item| item['test_item_id'].blank? }, :allow_destroy => true

我们希望将所有测试项目rfq传递到quote控制器中new,并在用户想要删除一些测试项目时将它们显示给用户。这是我们在报价控制器中所做的new

@rfq.test_items.each do |it|
     @quote.quote_test_items.build
     @quote.quote_test_items << it
end

有一个错误:

QuoteTestItem(#56736972) expected, got TestItem(#50178372)

我们在控制器中尝试了以下操作new

@quote.test_items << @rfq.test_items

它不会在控制器中产生错误。但是下面的代码有一个错误(未定义的方法:test_item_id):

<%= f.fields_for @quote.quote_test_items  do |builder| %>
        <ul>
          <div class="fields">
            <li><%= builder.input :test_item_id, :collection => TestItem.active_test_item.all(:order => 'name'), :label_method => :name, :value_method => :id,
                                  :label => false %><%= link_to_remove_items "remove", f %></li>   
          </div>
        </ul>
    <% end %>

在控制器中传递嵌套属性值的正确方法是什么?谢谢您的帮助。

4

0 回答 0