ruby-on-rails - 使用 JBuilder 内联数组元素

标签 ruby-on-rails json jbuilder

如何使用 Jbuilder 创建一个包含元素的数组而不先将其设置为变量?

我想在使用 JBuilder 时得到以下结果

{
  "something": [
    { "name": "first", "foo": "bar"},
    { "name": "second", "foo": "baz"}
  ]
}

我发现唯一有效的方法如下。
json.something do
  something = [
    { name: 'first', foo: 'bar' },
    { name: 'second', foo: 'baz' }
  ]
  json.array! something do |item|
    json.(item, :name, :foo)
  end
end

有没有办法让它看起来更像这样?
json.array! 'something' do
  json.array do
    json.name 'first'
    json.foo 'bar'
  end
  json.array do
    json.name 'second'
    json.foo 'baz'
  end
end

最佳答案

事实证明,jbuilder 内置了对这种用法的支持。您可以使用 child!这种方式的方法:

json.something do
  json.child! do
    json.name "first"  
    json.foo "bar"
  end
  json.child! do
    json.name "second"
    json.foo "barz"
  end
end

#=> 
{
  "something": [
    { "name": "first", "foo": "bar"},
    { "name": "second", "foo": "baz"}
  ]
}
好多了,我想。

关于ruby-on-rails - 使用 JBuilder 内联数组元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24461171/

相关文章:

ruby-on-rails - 调用关联之前的回调

mysql - Phusion 乘客 - ActiveRecord::PendingMigrationError

ios - Swift iOS 中的 JSON 序列化

javascript - 重建 Json 列表

ruby-on-rails - 我如何在 Jbuilder 中使用 Rails 助手和 Gon gem?

mysql - 如何捕获 Rails 中超出范围的特定列?

ruby-on-rails - has_many :through how it works?

javascript - 从 JSON 在 Javascript 中创建动态关联数组

java - JBuilder : Import classes in project?

ruby-on-rails - 如何将 JBuilder View 的 JSON 表示形式呈现为字符串?