redirect_to :controller=>'tips', :action => 'show'

hi,

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

John Useast wrote:

  hi,

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

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

you can try redirect_to(tip_path(@tip))

Amar Daxini

hi,

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 ishttp://mysite/controllername/paramId

With a normal set of restful routes (ie if you've got map.resources :tips in your routes files), the normal show url for the tip with id 123 IS /tips/123

Fred