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 回答