I''ve created a helper for dealing with tables called TableHelper. I have a method to deal with sorting asc or desc from within columns. They involve images and some other transitions. Here''s the code: def sort_column(title, direction) (link_to image_tag("up.gif", :border=>0), rushing_offenses_path(:numteams => (@showall ? 120 : nil), :orderby => title, :sortby => direction)) if !@searchteams end However, I''m trying to keep the code dry and I want to reuse the same method for all of the models/views that require it. Unfortunately, it has a default path pointing to the current controller which happens to be rushing_offenses_path. I want to call/change this path based on the controller that calls it. Unfortunately, I searched forever, and watched many rails casts to see if I could find the information. While I learned a ton of new things with helpers today, I couldn''t find any information on what I''m trying to do. Many thanks in advance. -- Posted via http://www.ruby-forum.com/.
On Tue, 2009-06-16 at 03:02 +0200, Älphä Blüë wrote:> I want to call/change this path based on the controller that calls it.Not sure if this is what you seek, but all views have access to the controller / action that rendered them via controller.controller_name and controller.action_name. e.g.; <% if controller.controller_name == "rushing_offenses" -%> some stuff <% end %> HTH, Bill
You can use that technique to do something like this in your helper: link_to("Link!", { :action => "blah", :controller => controller.controller_name }) You don''t have to use named routes all the time. There are definitely times where the path hash is advantageous. On Jun 15, 9:05 pm, bill walton <bwalton...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:> On Tue, 2009-06-16 at 03:02 +0200, Älphä Blüë wrote: > > I want to call/change this path based on the controller that calls it. > > Not sure if this is what you seek, but all views have access to the > controller / action that rendered them via controller.controller_name > and controller.action_name. > e.g.; > > <% if controller.controller_name == "rushing_offenses" -%> > some stuff > <% end %> > > HTH, > Bill
I created the following for my TableHelper which will allow all 37 models to use the same thing: def sort_column(title, direction) (direction == "asc" ? image = "up.gif" : image = "down.gif") (link_to image_tag(image, :border=>0), :controller => controller.controller_name, :numteams => (@showall ? 120 : nil), :orderby => title, :sortby => direction) if !@searchteams end -- Posted via http://www.ruby-forum.com/.