嵌套属性活动记录生成“0”作为哈希键?

时间:2014-10-18 03:33:47

标签: ruby-on-rails ruby activerecord ruby-on-rails-4

这个“0”来自owners_attributes?一切正常,但这个“0”键似乎奇怪地不合适..是正常/错误/或某些设置?不管它或删除它?谢谢!

 Parameters: {"utf8"=>"✓", "shorturl"=>{"redirect"=>"http://www.test.com",
                   "owners_attributes"=>{"0"=>{"email"=>"adm@test.com"}}}...

Strong_params:

def shorturl_params
  params.require(:shorturl).permit(:redirect, owners_attributes: [:email])
end

模型:

class Shorturl < ActiveRecord::Base
  has_many :campaigns
  has_many :owners, through: :campaigns
  accepts_nested_attributes_for :owners
  ...

1 个答案:

答案 0 :(得分:1)

这是通过HTTP参数移植这些内容的内部格式。它允许包含多组嵌套属性。

看起来有点奇怪,但这不应该是一个问题。嵌套的属性处理程序将知道如何处理它。如果您需要在默认处理程序拦截之前对它们进行操作,那么这只是一个问题,但最好避免这种情况。