Skip to content


Subversion checkout URL

You can clone with
Download ZIP


how to pass instance variables between templates? #363

crankharder opened this Issue · 6 comments

4 participants


I've got users/show:

object @user

attribute :id
node :foo do

child :accounts do
  extends 'accounts/show', :locals => {:test => @test}

node :accounts2 do |obj|
  partial 'accounts/show', :object => obj.accounts, :locals => {:test => @test}

and accounts/show

object @account

attribute :id
node :foo do

If I do this:

Rabl::Renderer.json(user, 'users/show', :locals => {:test => 123})

the :foo attribute is nil in the accounts. Is there any way to pass an instance variable through to another partial?

{"accounts"=>[{"id"=>252618, "foo"=>nil}, {"id"=>2521838, "foo"=>nil}],
 "accounts2"=>[{"id"=>252618, "foo"=>nil}, {"id"=>2521838, "foo"=>nil}],

Child can be given a block variable but it'll be @user and not any arbitrary variable. I'm not sure I've even done that since I'm fairly allergic to multiple instance variables in the view. Maybe @nesquena knows.


At a minimum, I need a hack of a solution so I can keep moving. From within a template is there any object I can hook into that'll also be available in the next template?

I'm thinking of just setting my own instance variable on something.


Bah, didn't mean to do that.

@crankharder crankharder reopened this

Well I think you could probably figure out a way to wrap the instance variable into the object in a more OO style... but if you have to hack it, you could probably pass something into the scope, as a helper method would be:"...source...", { :format => "xml" }).render(scope, { :foo => "bar", :object => @user })

Yeah, I was thinking there is a shortcut but my typical response is to use a presenter. Here's my boilerplate response on why there should only be one object at the top of your RABL and why everything should derive from there:

Great articles to read:

I cover most of the above with Testing in isolation, example in RABL on my blog. After writing that, I recently read Objects on Rails and found that Avdi Grimm covers much of the same but explains it better in book format.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.