Joe
Joe

Reputation: 1765

Render back a partial

I have a page composed of several partial in RoR. The partial will appear as the user press some button, and they're rendered in the same page. When I change the page, I want that the back button of the browser redirect me not in the index page without the partial rendered, but exactly in the same page already composed by the several partial as it was before I left.

Is it possible ? If yes how ?

Upvotes: 0

Views: 650

Answers (1)

Andrew
Andrew

Reputation: 43103

You might consider setting a session variable, or a cookie, that stores a bit of information about the current user's browsing.

In my app I have a couple of toggles that open expanded toolbars, and if the user has opened it I want it to stay open for them whether they reload or go back etc.

So, do to this, I have an AJAX request when they click the button (which it looks like you're going to do already in order to render partials on a click).

In the controller action to show the partial I would include something like:

...
session[:user_options][:partial_name] = true
...

Then in your view you can say:

- if session[:user_options][:partial_name] = true
  = render 'partial'

The only gotcha is you'll have to ensure that session[:user_options] is defined throughout your app, or else you'll sometimes get nil object errors.

I don't know if this is really the best solution for your particular problem, but it is a solution that I'm familiar with. Test it out a bit, maybe you can remix the basic idea to fit what you need.

Upvotes: 1

Related Questions