0

背景:投稿には多くのコミュニティがあります。私の新しい投稿フォームには、Select2 を使用してコミュニティを選択するための複数選択ボックスがあります。

Select2 を使用せずにコミュニティを選択すると、次のパラメーターが取得され、すべて正常に動作します。

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

Select2 でコミュニティを選択すると、次のようになります。

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

これはエラーをスローしCouldn't find Community with id=0ます。強力なパラメータがどのように機能するかに関係するものに絞り込みました。Railsは「[]」のIDを持つコミュニティを見つけようとしていると思いますか? これは私の PostsController にあります:

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

何か案は?

4

1 に答える 1

0

Rails が行っているのは、入力 ( ) を受け取り、それを (整数に)"[],1"呼び出すことです。to_iだからあなたは得る

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

に分割する必要があり["[],1"]ます["[]","1"]

于 2013-06-29T16:50:51.243 に答える