0

ПРЕДПОСЫЛКИ: В сообщениях есть много сообществ. В моей новой форме сообщения у меня есть множественный флажок для выбора сообществ с помощью Select2.Select2 + Rails 4/Сильные параметры

При выборе сообщества без выбор2, я получаю этот Params, и все работает нормально:

...{"community_ids"=>["","1"]},... 

При выборе сообщества выбор2 я получаю:

...{"community_ids"=>["[],1"]},... 

, который бросает ошибку Couldn't find Community with id=0. Я сузил его, чтобы иметь какое-то отношение к тому, как работают сильные параметры. Я предполагаю, что Rails пытается найти сообщество с идентификатором «[]»? Это в моих сообщениях:

def post_params 
    params[:post].permit(:post_field1, :post_field2, { :community_ids => [] }) 
end 

Любые идеи?

+1

Какие рельсы занимают входные данные ("[], 1") и вызывают на нем 'to_i' (целое число). Таким образом, вы получаете '' [], 1 ".to_i # => 0'. Вам нужно как-то разбить ["[], 1"] на ["[]", "1"] – jokklan

+0

Какую версию Select2 вы используете? Кроме того, можете ли вы разместить свой код JavaScript? – georgebrock

+0

@jokklan, вы должны отправить этот комментарий в качестве ответа. – pjmorse

ответ

0

Что делает рельс, принимает вход ("[],1") и вызывает to_i на нем (целое число). Таким образом, вы получите

"[],1".to_i #=> 0

Вы как-то нужно было бы разделить ["[],1"] в ["[]","1"].

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