2010-10-06 69 views
0

我目前正在使用jQuery的rails3应用程序。我有一个JavaScript插件,根据用户所做的选择返回一组JSON数据。我有一个保存按钮,它从Java脚本插件读取这组数据,并将其返回到Rails应用程序以进行保存。 JavaScript似乎正在工作,它会进行正确的ajax调用并将数据发回到rails应用程序。问题似乎是Rails将已经被PUT回数据的数据编码回服务器的方式。Rails没有对来自POST的嵌套数据进行编码

问题是我试图回发到rails应用程序的嵌套数据。我有一系列的转变,似乎被视为一个长字符串,而不是我期待的值的散列。这里是数据轨道的输出。

参数: { “移位”=> “[{\” START_TIME \ “:\” 星期三十月 06 2010九点30分00秒GMT + 0100 (BST)\ “\” END_TIME \ “:\”Wed Oct 06 2010 13:00:00 GMT + 0100 (BST)\“,\”active \“:true,\”occurrence \“:\”weekly \“,\”company_id \“: \“1 \”},{\“start_time \”:\“Thu Oct 07 2010 09:30:00 GMT + 0100 (BST)\”,\“end_time \”:\“Thu Oct 07 2010 13 :00:00 GMT + 0100 (BST)\“,\”active \“:true,\”occurrence \“:\”weekly \“,\”company_id \“:\”1 \“}]”, “id”=>“1”}

我希望能够再在我的控制器

params[:shifts].each do |shift| 
    puts shift.inspect # would expect a hash of values here 
end 

然而,而不是值的散列有只是一个字符串使用下面的代码。任何有关为什么rails不会像您期望的那样编码哈希值的建议。

回答

0

我相信你需要首先解析它为JSON。 “require'json'”在控制器的顶部,然后尝试JSON.parse(params [:shift])。each {| shift | shift.inspect}。

+0

是的,现在工作。谢谢。 – Stewart 2010-10-06 13:47:13

相关问题