Ruby on Rails 4 - 如何迭代这些参数?

时间:2014-01-17 22:31:32

标签: ruby-on-rails ruby iteration

我有以下提交的参数:

{"utf8"=>"✓", 
"course"=>
   {
    "title"=>"Test", "roles"=>["Tuesday", "Thursday"]
   }
}

我的问题是:如何将“角色”参数迭代到“add_role”?

我目前正在尝试此迭代,但它无法正常工作:

@course.user_id = current_user.id

params['course']['roles'].each do |key, value|
  @course.add_role(key['course']['roles'])
end

我收到以下错误:undefined method '[]' for nil:NilClass

迭代这些参数我做错了什么?

谢谢!

1 个答案:

答案 0 :(得分:3)

params['course']['roles']是数组["Tuesday", "Thursday"],而不是哈希。

在你的循环中,key获取角色字符串的值,"Tuesday"['course']返回nilnil['roles']会导致错误。

您似乎正在尝试这样做:

params['course']['roles'].each do |role|
  @course.add_role(role)
end

irb