强参数:“permit”方法的数组问题

时间:2014-08-04 17:08:59

标签: ruby-on-rails-4

问题

  

/app/controllers/users_controller.rb:29:语法错误,意外',',期待=>名称,角色:[],(这里的东西)

场景

users_controller.rb

params.require(:user).permit(:name, roles: [])

诊断

  • 当我访问与users_controller.rb;
  • 相关的任何页面时,会出现问题
  • 如果我使用:roles => []代替roles: [],则错误相同;
  • 如果我为roles: []更改:roles,一切顺利。

环境

我使用Rails 4在CentOS 6.5上运行。

1 个答案:

答案 0 :(得分:3)

逗号是意外的,因为它将:name解释为散列键。这是因为Rails看到哈希roles: []。明确地将其标记为

params.require(:user).permit(:name, {roles: []})