Rails:每个Array给出错误?

dMi*_*Mix 1 ruby ruby-on-rails

在一种形式中,我正在创建一个区域并编辑多个用户.下面的"user_attributes"用于用户,"name"用于区域.因此,对于每个user_attribute,我想更新用户模型.

PARAMS

{ "territory"=>{"name"=>"Central Canada",
  "user_attributes"=>[{"user_id"=>"30"},{"user_id"=>"30"}]}
}
Run Code Online (Sandbox Code Playgroud)

创造行动

@territory = @current_account.territories.new[:territory]
params[:user_attributes].each do |item|
  @user = User.find(item[:user_id])
  @user.update_attribute(:territory_id, @territory.id)
end 
Run Code Online (Sandbox Code Playgroud)

但是rails正在反击,params [:user_attributes]是零.但你可以从params看到它不是.我错过了什么?

J C*_*per 6

根据您发布的内容,您的user_attributes哈希值就在您的territory哈希值中.这应该是你的问题 - 要么把它移到外面,要么做到params[:territory][:user_attributes]