In my controller code, depending on the values in the database, I may
want my user to go one of several places. But when I put more than one
redirect in, it gives me the message:
Render and/or redirect were called multiple times in this action.
In my controller code, depending on the values in the database, I may
want my user to go one of several places. But when I put more than
one
redirect in, it gives me the message:
Render and/or redirect were called multiple times in this action.
How do I do this?
redirect_to(some_place) and return
Alternatively, store the desired destination URL and redirect once at
the end of the method.
stored_location = nil
…
stored_location = ‘fall_down_go_boom_url’ if some_criteria
Maybe s.ross’s explanation is enough, but just in case, I had to deal
with the same problem a while back and this might be useful…
redirect_to doesn’t stop the rest of the code in your method/action
from keeping executing so if you use it and then later on in your code
there is another render/redirect_to like, for example, as a default
action after an if/select then there is your problem.
The solution is to use return right after you redirect_to line:
redirect_to
return # here the code leaves the method/action
I hope this helps.
Pepe
This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.