Comments (7)
What json do you want to get?
from jbuilder.
I'm trying to get json for an ancestry gem table. The table contains a tree of location data. Because it's a tree, I only need to start with the first record - then I access their children. This is the code I'm trying:
json.locations do
json.label @location.name
json.children @location.children do |child|
json.label child.name
json.children child.children do |child2|
json.label child2.name
json.children child2.children do |child3|
json.label child3.name
end
end
end
end
The results start with a { and jqTree requires that it start with a [
This is what I'm getting:
BTW - If I use the following, the output starts with [
But, this produces the wrong data.
json.array!(@locations) do |location|
json.label location.name
json.children location.children do |child|
json.label child.name
json.children child.children do |child2|
json.label child2.name
json.children child2.children do |child3|
json.label child3.name
end
end
end
end
from jbuilder.
First, I might want to use a partial for this instead of having a child2, child3, etc. Unless you only always have three levels. Maybe something like
_your_partial.json.jbuilder:
json.label location.name
json.children do
json.array! location.children do |child|
json.partial! 'your_partial', :location => child
end
end
In order to get an array at the top level, in your controller, put @location inside of an array (i.e. @locations = [@location]
). Then your view would look like:
json.locations do
json.array! @locations do |location|
json.partial! 'your_partial', :location => location
end
end
from jbuilder.
My controller was like this (I only need the first location to start the tree):
def tree
@location = Location.find(1)
end
I tried this - but, got errors.
def tree
@location = [Location.find(1)]
end
from jbuilder.
I tried this:
json.locations do
json.label @location.name
json.children @location.children do |child|
...
But, it still starts with { instead of [
from jbuilder.
You should use array!
to get an array.
from jbuilder.
You could do:
json.array! [1] do
json.location do
...
end
end
Sent from my iPhone
On Feb 27, 2013, at 12:17 PM, David Burton [email protected] wrote:
I tried this:
json.locations do
json.label @location.name
json.children @location.children do |child|
...
But, it still starts with { instead of [—
Reply to this email directly or view it on GitHub.
from jbuilder.
Related Issues (20)
- `json.array! @reports, :id, :count` always give me all the attributes.[Not an issue] HOT 1
- JBuilder 2.11.3: "NoMethodError Exception: undefined method `empty?` for PG::Result" HOT 7
- Cache keys - recyclable by default?
- JBuilder 2.11.3: uninitialized constant ActionView::AbstractRenderer on load under Nginx/Passsenger HOT 3
- Cache key depending on multiple dependencies HOT 1
- jBuilder 2.11.3, Rails 6.1.4.1 fail to render objects that are child of Simpledelegator HOT 2
- 2.11.3 and 2.11.4 missing from Changelog HOT 1
- Does not work with Rails 7 api_only = true HOT 7
- Incorrect url comment notes in generated scaffold controller in a namespace.
- ActionView::MissingTemplate after upgrading to Rails 7 HOT 3
- Auto-rendering ActionText body contents instead of their attributes hash
- JBuilder Template Test failing on CI HOT 5
- I am moving my rails application to rails only api but jbuilder is returning a blank screen HOT 5
- Can't seem to render unescaped HTML in Jbuilder HOT 2
- Passing locals to `json.array!` ? HOT 2
- `json.partial!` line in template is not executed when passing locals using new hash syntax HOT 2
- Jbuilder ignore_nil, key_format, and deep_format_keys not working (Rails 7) HOT 1
- Jbuilder ignore_nil, key_format, and deep_format_keys not working (Rails 7)
- Sample use in standalone Ruby script HOT 1
- ActionView 7.0.7 collection caching breaking on jbuilder arrays HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from jbuilder.