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
http://railstech.com

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