【问题标题】:How to use strong parameters with an objects array in Rails如何在 Rails 中对对象数组使用强参数
【发布时间】:2013-09-06 20:52:44
【问题描述】:

在使用 Rails 4.0 强参数时,如何允许这样的 JSON?

{
   "user":
   {
       "first_name":"Jello"
   },
   "users_to_employer":[
       {
           "start_date":"2013-09-03T16:45:27+02:00",
           "end_date":"2013-09-10T16:45:27+02:00",
           "employer":{"company_name":"Telenor"}
       },
       {
           "start_date":"2013-09-17T16:45:27+02:00",
           "end_date":null,
           "employer":{"company_name":"Erixon"}
       }
   ]
}

我试过了:

 params.require(:users_to_employers => []).permit(
                                                 :start_date, 
                                                 :end_date => nil,
                                                 :employer => [
                                                     :company_name
                                                 ])

但是没有用。

【问题讨论】:

  • 尝试 params.permit(users_to_employers: [{ :start_date, :end_date, 雇主: { :company_name }])
  • 谢谢,它成功了。
  • 询问时,不要说“没用”之类的话。这什么也没告诉我们。如果您遇到错误,请将其放入问题中。如果您期望的结果与您得到的结果不同,请将期望和实际结果放入问题中。有关详细信息,请参阅“How to Ask”和链接页面。

标签: ruby-on-rails ruby strong-parameters


【解决方案1】:

要接受对象数组,请将参数放入数组中:

params.permit(
  users_to_employers: [
    :start_date,
    :end_date,
    employer: [ :company_name ]
  ]
)

【讨论】:

  • 我的 ruby​​ 在 [] 上工作得很好,但在 {} 上却不行。它说这是 {} 的语法错误,但我使用的是 `{ :employer => [ :company_name] 语法。
  • 我更新了答案。我并没有真正测试它,只是知道它应该如何工作。
  • 感谢您的帮助!
猜你喜欢
  • 2013-08-28
  • 2017-07-15
  • 2014-06-12
  • 1970-01-01
  • 2014-01-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多