I tried to redirect rails to show action by passing controller, action, and params. However, rails ignores the name of action totally!
what I got is http://mysite/controllername/paramId
so i have error message....
here is the action code I used:
def update
@tip = current_user.tips.find(params[:id])
@tip.attributes = params[:tip]
@tip.category_ids = params[:categories]
@tip.tag_with(params[:tags]) if params[:tags]
if @tip.save
flash[:notice] = 'Tip was successfully updated.'
redirect_to :controller=>'tips', :action => 'show', :id => @tip.permalink
else
render :action => 'edit'
end
end
Why fight the framework?
redirect_to @tip
And you can shorten your code by using the :notice option.
redirect_to @tip, :notice => 'Message here'