2012-06-27 45 views
0

我正在创建一个哈希数组并通过json将其传递到控制器中。下面是我送的数据和一些服务器输出前右它:Ruby on Rails - 无法在模型中存储哈希阵列

Started POST "/api/user.json" for 127.0.0.1 at Wed Jun 27 18:52:32 -0400 2012 
    Processing by Api::UsersController#create as JSON 
    Parameters: {"accept"=>"json", "content_type"=>"json", "users"=>"[{\"email\":\"[email protected]\"},{\"email\":\"[email protected]\"},{\"email\":\"[email protected]\"},{\"email\":\"[email protected]\"},{\"email\":\"[email protected]\\r\"},{\"email\":\"0\"},{\"email\":\"[email protected]\"},{\"email\":\"[email protected]\"},{\"email\":\"[email protected]\"},{\"email\":\"[email protected]\"}]"} 

这里是我的控制器代码:

PARAMS [“用户”]每个{| user_params | ! User.create(user_params) }

,这里是错误:

Completed 500 Internal Server Error in 2ms 

NoMethodError (undefined method `keys' for #<String:0x10662d660>): 
    app/controllers/api/users_controller.rb:6:in `create' 
    app/controllers/api/users_controller.rb:5:in `each' 
    app/controllers/api/users_controller.rb:5:in `create' 

有没有人有任何想法可能错在这里是发生了吗?

谢谢!

+0

user_param在检查时如何看起来像? –

回答

2

当您收到params[:users]时,您实际上正在接收一个字符串而不是散列。这个字符串恰好是用JSON编码的(即,在一个带有Ruby散列相似性的样式中)。您必须通过诸如hash = JSON.parse(params[:users])之类的方法将此字符串转换为散列。

+0

谢谢 - 现在就去试试吧。 – GeekedOut

+0

这工作!!!!! :) 谢谢! – GeekedOut