2014-12-25 3 views
0

У меня есть следующие модели:Рельсы has_many и belongs_to флажков

поставщик: магазины деталь продавцов

has_many :vendor_business_type, foreign_key: "vendor_id" 

vendor_business_type: магазины ссылаются на поставщик и business_types они имеют

belongs_to :vendor 

business_type : магазины тип бизнеса

Я делаю новый/cre поел форму, как показано ниже:

<%= form_for @vendor %> 
    <% BusinessType.where(:business_id=>"5").each do |business_type| %> 
     <%= check_box_tag "vendor[vendor_business_type_attributes][business_type_ids][]", business_type.id %> 
     <%= business_type.business_type_name %> 
    <% end %> 
    <%= submit_tag("Submit") %> 
<% end %> 

поставщика # нового

@vendor=Vendor.new() 
@vendor.build_school 
@vendor.vendor_business_type.build() 

vendor_params

params.require(:vendor).permit(:vendor_business_type_attributes [:business_type_ids=> []]) 

Это дает мне ошибку: нет неявного преобразования хэша в Integer

ответ

0

Передаст a:

params.require(:vendor).permit(:vendor_business_type_attributes => { :business_type_ids => [] }) 

Поскольку business_type_id указан внутри скобок в вашей форме, он становится хеш-атрибутом, а не частью массива.

+0

Теперь он дает мне ошибку: не неявное преобразование строки в Integer Эта ошибка приходит в продавцах # создать в строке @ поставщик = Vendor.new (vendor_params) –

+0

Вы можете вставить то, что ваш запрос PARAMS выглядеть как в журналах? – agmcleod

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