无法理解 rails 4.2 中语法错误的原因

Can't understand reason for syntax error in rails 4.2

我有以下代码:

params.require(:posting_status).permit(:email, :craig_password,  :mail_password, :posting_id, post_to:[])  

这一行没有给出语法错误,但是当我喜欢时:

params.require(:posting_status).permit(:email, :craig_password, :mail_password,  post_to:[], :posting_id)  

语法错误,找不到原因。

在第一种情况下,您在开头使用了符号,在末尾使用了(隐含的!)散列。

在第二种情况下,隐式散列不在末尾。 显式哈希解决了这个问题。

params.require(:posting_status).permit(:email, :craig_password, :mail_password, {post_to:[]}, : posting_id)

P.S。 'permit'方法的源代码:

文件 actionpack/lib/action_controller/metal/strong_parameters.rb,第 325 行

def permit(*filters)
  params = self.class.new

  filters.flatten.each do |filter|
    case filter
    when Symbol, String
      permitted_scalar_filter(params, filter)
    when Hash then
      hash_filter(params, filter)
    end
  end

  unpermitted_parameters!(params) if self.class.action_on_unpermitted_parameters

  params.permit!
end