 <p>This is quite hacky, but should work:</p> <pre><code>:path =&gt; @path.as_json.merge(:questions =&gt; @path.questions.as_json) </code></pre> <p>Eventually you can override as_json inside your model:</p> <pre><code>def as_json(options={}) includes = [*options.delete(:include)] hash = super(options) includes.each do |association| hash[self.class.name.underscore][association.to_s] = self.send(association).as_json end hash end </code></pre> <p>And then just call: <code>:path =&gt; @path.as_json(:include =&gt; :questions)</code></p> <p>Note it will also add <code>:include</code> option to to_json method. </p>