我一直在试图弄清楚如何让RABL呈现一个非常简单的字符串JSON数组,例如:["my,"array","of","strings"]
控制器将是
class StringsController < ApplicationController
responds_to :json
def index
@string = ['my','array','of','strings']
respond_with @strings
end
end
RABL视图必定以:
开头collection @strings, root_object: false
但我无法弄清楚如何在没有节点名称的情况下输出字符串或在对象中输出...
显然有一个更直接的解决方案来实际提供JSON数组,就像我在下面提到的那样,但我特别感兴趣的是为什么这在RABL中看起来如此复杂!
class StringsController < ApplicationController
def index
render json: ['my','array','of','strings']
end
end
答案 0 :(得分:2)
要建立在Mark的答案之上,我认为它适用于此:
collection @string, object_root: false
node :value do |s|
s
end
注意我添加了:value
,它是JSON记录的标签。
答案 1 :(得分:0)
尼尔,
这适用于任何数组,但对于您的特定数组,确切的答案是......
在index.json.rabl中使用以下代码
collection @string, object_root: false
node do |s|
s
en
在您的控制器中使用...
def index
@string = ["my","array","of","strings"]
end
答案 2 :(得分:-2)
你可以这样做,而且不需要用于显示反应的rabl视图。
def index
@string = ['my','array','of','strings']
respond_to do |format|
format.json { render :json => {:message => "Success", :my_string => @string } }
format.xml
end
end