4

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

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

配置.rb:

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

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

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

有没有办法做到这一点?

谢谢

4

3 回答 3

1

尝试像这样访问 json 对象

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

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

于 2012-10-16T19:50:46.730 回答
0

我认为 Rails 可能会自动将参数转换为哈希,因为它识别出它是 json。你应该可以通过调用to_json它把它变成一个字符串。

于 2012-10-16T19:53:32.873 回答
0

您仍然可以将数据作为 json 字符串发送:

  • 在您的 jquery ajax 设置中,将 contentType 选项设置为“text/html”
于 2013-01-09T10:53:55.077 回答