link_to parameters

I'm trying to add paging parameters to link_to inside an application_helper method.

  def index_show_link(elm, link_text = 'Show')     (can?(:read, elm)) ? link_to( link_text, elm ) : ' '.html_safe   end

I want to add the :page => params[:page] pair into the link, but I can't seem to find a way to add it. If I use the long-hand syntax: {:id => elm.id, :controller => controller_name, :action => :show, :page => params[:page]} then it works, but that also horses around with friendly_id.

I've looked through the link_to and url_for documentation, and I can't see a way to pass the bare object to either method and also include the extra parameter.

What's the trick?

Thanks,

Walter

I found that substituting to_param for id makes FriendlyId work correctly again, and this one is solved. Still seems awfully long-hand.

Walter

> I'm trying to add paging parameters to link_to inside an application_helper method.

> def index_show_link(elm, link_text = 'Show') > (can?(:read, elm)) ? link_to( link_text, elm ) : ' '.html_safe > end

> I want to add the :page => params[:page] pair into the link, but I can't seem to find a way to add it. If I use the long-hand syntax: {:id => elm.id, :controller => controller_name, :action => :show, :page => params[:page]} then it works, but that also horses around with friendly_id.

I found that substituting to_param for id makes FriendlyId work correctly again, and this one is solved. Still seems awfully long-hand.

link_to 'text', blah

is a more convenient way of writing link_to 'text', polymorphic_path(blah) or link_to 'text', blah_path(blah) (assuming you have resources :blahs). Both of those two _path helpers should allow you to specify extra options (i.e. polymorphic_path(blah, :page => 2))

Fred

I'm trying to add paging parameters to link_to inside an application_helper method.

def index_show_link(elm, link_text = 'Show')    (can?(:read, elm)) ? link_to( link_text, elm ) : ' '.html_safe end

I want to add the :page => params[:page] pair into the link, but I can't seem to find a way to add it. If I use the long-hand syntax: {:id => elm.id, :controller => controller_name, :action => :show, :page => params[:page]} then it works, but that also horses around with friendly_id.

I found that substituting to_param for id makes FriendlyId work correctly again, and this one is solved. Still seems awfully long-hand.

link_to 'text', blah

is a more convenient way of writing link_to 'text', polymorphic_path(blah) or link_to 'text', blah_path(blah) (assuming you have resources :blahs). Both of those two _path helpers should allow you to specify extra options (i.e. polymorphic_path(blah, :page => 2))

So are you saying that if I'm in the application helper, I can use a polymorphic_path, even though I am not declaring anything to be polymorphic? That's a new one on me.

Walter

I'm trying to add paging parameters to link_to inside an application_helper method.

def index_show_link(elm, link_text = 'Show')   (can?(:read, elm)) ? link_to( link_text, elm ) : ' '.html_safe end

I want to add the :page => params[:page] pair into the link, but I can't seem to find a way to add it. If I use the long-hand syntax: {:id => elm.id, :controller => controller_name, :action => :show, :page => params[:page]} then it works, but that also horses around with friendly_id.

I found that substituting to_param for id makes FriendlyId work correctly again, and this one is solved. Still seems awfully long-hand.

link_to 'text', blah

is a more convenient way of writing link_to 'text', polymorphic_path(blah) or link_to 'text', blah_path(blah) (assuming you have resources :blahs). Both of those two _path helpers should allow you to specify extra options (i.e. polymorphic_path(blah, :page => 2))

So are you saying that if I'm in the application helper, I can use a polymorphic_path, even though I am not declaring anything to be polymorphic? That's a new one on me.

Refactored, works great! Thanks!

Walter

polymorphic_path is a rails provided method - it's what gets called by rails when you shorthand stuff like form_for(some_object) or link_to 'blah', some_other_object. It basically just looks at the class name (probably via the activemodel::naming) stuff and then calls the explicit path helper (comment_path etc) that it expects to exist given what you're asking it to do.

Fred