ajax and redirect

Here is my use case

I have a search model with two actions search_set and search_show.

1 - A user loads the home page which contains a search_form, rendered via a partial (search_form).

2 - User does a search, and the request goes to search_set, the search is saved and a redirect happens to search_show page which again renders the search_form with the saved search preferences. This search form is different than the one if step1, because it's a remote form being submitted to the same action (search set)

3 - Now the user does another search, and the search form is submitted via ajax to the search_set action. The search is saved and executed and now I need to present the result via rjs templates (corresponding to search_show). I am told that if the request is xhr then I can't redirect to the search_show action? Is that right? If yes, how do I handle this?

Thanks

Hi,

What you cannot do is mixing Ajax requests with full URL page requests

But what you can do is something like:

format.js {           render :action=> search_show, :layout=>false         }

Your search_show view will be rendered without any application layout provided you're using the same content @variables..

Jan

With my search forms, I use two partials, one for the controls and one for the result and then just use a page update to redisplay both parts.

If you really want a redirect

format.js { render :action=> search_show, :layout=>false }

javinto, Interesting, something I have not tried. Is this an ajax update response, in which case, the part of the dom being updated would presumably need to be the part generated by the yield in the layout?

badnaam I use ajax search forms and handle the update as two partials, one for the controls and one for the results, using render :update

Tonypm

to search_show). I am told that if the request is xhr then I can't redirect to the search_show action? Is that right? If yes, how do I handle this?

    Hi If what I understood from your post is correct, you can do from controller like

render :update do |page|       page.redirect_to search_show_url end

Sijo