rails jbuilder - 只是一个字符串数组

yee*_*379 24 arrays json ruby-on-rails jbuilder

我有一个控制器,它返回一个ActiveRecord对象数组和一个jbuilder视图来生成json(所有标准的东西).如果我想要一个哈希数组,那么效果很好.

所以例如我有:

json.array!(@list) do |l|
    json.( l, :field )
end
Run Code Online (Sandbox Code Playgroud)

返回

[
  { "field": "one" },
  { "field": "two" },
  { "field": "three" }
]
Run Code Online (Sandbox Code Playgroud)

但是,我只想要一个字符串数组; 这样我的json就是

[
  "one",
  "two",
  "three"
]
Run Code Online (Sandbox Code Playgroud)

我的jbuilder文件应该是什么?

irm*_*sut 51

有点晚但这会奏效:

json.array! @list
Run Code Online (Sandbox Code Playgroud)

但是考虑在块中使用它来创建JSON对:

json.data do
  json.array! @list  
end

# => { "data" : [ "item1", "item2", "item3" ] }
Run Code Online (Sandbox Code Playgroud)

  • 只是尝试创建一个字符串数组,如`@devices.collect {| d | d.device}`并使用此数组创建json. (4认同)
  • 您也可以像`@devices.pluck:device`一样使用pluck (2认同)

Ily*_*lov 5

如果您希望 Array 作为某个键的值,这将起作用:

json.some_key [1, 3, 4]
Run Code Online (Sandbox Code Playgroud)