Rails,发送json params

时间:2012-10-16 19:32:45

标签: jquery ruby-on-rails ruby ajax json

我必须使用一个需要包含json字符串的单个param的API:

def function
  data = params['data']
  # Do thing with the json string data
  #... More code
end

config.rb:

match "/thing" => "controller#function", :via => :post 

我搜索并阅读了文档,我似乎找不到如何做到这一点的方法。 我用form_for或form_tag函数搜索过,这似乎不可能。 我尝试过使用remote =>这两种方法是的,但它没有做我想要的。

我还尝试使用jquery $ .ajax执行此操作,但它以json格式发送参数,而不是json字符串。

有没有办法做到这一点?

谢谢

3 个答案:

答案 0 :(得分:1)

尝试按原样访问json对象

data = params[:data].first[0]

包含[0]来读取json格式化对象的第一个元素,假设它没有嵌套在另一个json对象中。

答案 1 :(得分:0)

我认为Rails可能会自动将参数转换为哈希值,因为它识别出它的json。您应该可以通过调用to_json将其重新转换为字符串。

答案 2 :(得分:0)

您仍然可以将数据发送为json string:

  • 在您的jquery ajax设置中,将contentType选项设置为“text / html”