参数不从collection_select传回

时间:2013-12-08 18:05:48

标签: ruby-on-rails select collections

我无法将一些数据作为collection_select下拉列表的一部分传回,需要帮助。 collection_select是填充订单的表单的一部分:

<%= form_for(@order) do |f| %>

collection_select应显示可能的付款类型列表,从payment_type模型中提取,并使用这些类型填充@order实例的参数。

模型'order'有一个整数'payment_type_id'和这个关联:

belongs_to :payment_type

模型'payment_type'有一个字符串'name',这个关联:

has_many :orders

以下是表单的collection_select部分:

<div class="field">
<%= f.label :pay_type_id %><br>
<%= f.collection_select(:payment_type_id, @pay_type_collection, :id, :name, {:prompt => 'Choose one'})%>
</div>

以下是orders_controller.rb中创建表单的“新”操作的一部分:

@order = Order.new
@pay_type_collection = PaymentType.all

以下是接受表单的“创建”操作的一部分:

@order = Order.new(order_params)
@order.add_line_items_from_cart(@cart)
respond_to do |format|

以下是我所知道的:

  • 下拉列表显示我的payment_type模型中列出的正确选项。它在页面源中没有fields_with_errors。
  • 调试器显示(order_params)传递表单的其他部分(文本区域等),但不传递collection_select数据。
  • 当点击提交按钮时,会出现以下错误:“nil的未定义方法`map”:NilClass“

有人可以帮我理解如何将我的collection_select参数恢复到控制器吗?关于collection_select的任何类似问题,我找不到银弹。

0 个答案:

没有答案