2013-02-19 2 views
1

По какой-то причине мой simple_form код вставкиПростой формы объединения, создающие пустое поле ввода

<input name="order[product_ids][]" type="hidden" value=""> 

по форме

<label class="checkbox"> 
    <input class="check_boxes optional" id="order_product_ids_11" 
      name="order[product_ids][]" type="checkbox" value="11">Product11 
</label> 

Когда я использую мою форму has_and_belongs_to_many ассоциация

<%= f.association :products, as: :check_boxes, include_blank: false %> 

с моделью Приказы

class Order < ActiveRecord::Base 
    belongs_to :user 
    has_and_belongs_to_many :products 

и изделия

class Product < ActiveRecord::Base 
    has_and_belongs_to_many :orders 

, который вызывает ошибку:

ActiveRecord::RecordNotFound in OrdersController#create 

Couldn't find all Products with IDs (3, 5,) (found 2 results, but was looking for 3) 


{"utf8"=>"✓", 
"authenticity_token"=>"F0c4J81QXRNMFDXrN55XrRafwj86lzUl3kXe/xXxKxc=", 
"order"=>{"order_type"=>"init_purchase", 
"shipping_status"=>"unshipped", 
"product_ids"=>["3", 
"5", 
""]}, 
"commit"=>"Create Order"} 

, потому что она проходит пустое значение для одного из продуктов. Когда я вручную удаляю пустое поле ввода без значения, у него нет проблемы.

ответ

3

Это не простая вещь, а Rails. В Rails 4 будет вариант конфигурации, но теперь вы должны удалить его вручную.

Вы можете прочитать немного об этом here

+0

Спасибо, никогда бы не нашел это. Хотя, я все еще смущен, если предыдущая функция. является признаком или ошибкой. – maschwenk

+1

Как использовать эту функцию ': include_hidden' с помощью simple_form, чтобы избежать этой проблемы с« пустым идентификатором »? –

+0

Как люди справлялись с этим в Rails 3.2.14? Не удается выполнить миграцию до Rails4. – codeObserver

Смежные вопросы