does anyone know how i can make dynamic paths? say i had a partial for maybe an index list, but i want the link to the show page to be dynamic so im able to use the partial for may objects. <%= link_to "show", "#{object}" + _path(object) %> something along those lines.
Bob O wrote:> does anyone know how i can make dynamic paths? > > say i had a partial for maybe an index list, but i want the link to > the show page to be dynamic so im able to use the partial for may > objects. > > <%= link_to "show", "#{object}" + _path(object) %> > > something along those lines.<%= link_to "show", :controller => controller.controller_name %> This will automatically define the path to the current controller when it''s called from a view within that controller.. For instance say you have an products controller with a products view... Using the line above will give you: <%= link_to "show", products_path %> -- Posted via http://www.ruby-forum.com/.
excellent. thank you. i further step. I have a polymorphic association where im trying to achieve something similar. im feeding an xml file to a swf. the xml iterates over the poly model, but it belongs_to many different objects. but the xml file is called from the poly controller. so the above wont work correctly, right? if this doesnt make sense i can post some code On Jul 10, 4:23 pm, "Älphä Blüë" <rails-mailing-l...-ARtvInVfO7m5VldFQK4jKA@public.gmane.orgt> wrote:> Bob O wrote: > > does anyone know how i can make dynamic paths? > > > say i had a partial for maybe an index list, but i want the link to > > the show page to be dynamic so im able to use the partial for may > > objects. > > > <%= link_to "show", "#{object}" + _path(object) %> > > > something along those lines. > > <%= link_to "show", :controller => controller.controller_name %> > > This will automatically define the path to the current controller when > it''s called from a view within that controller.. > > For instance say you have an products controller with a products view... > > Using the line above will give you: > > <%= link_to "show", products_path %> > > -- > Posted viahttp://www.ruby-forum.com/.
Hi Bob, It depends on how you have your controllers setup - really. For instance, I have a Universal controller template that 37 other controllers use. class UniversalTemplatesController < ApplicationController def index @objects = params[:controller].singularize.camelize.constantize.find(params[..]) respond_to do |format| format.html format.xml { render :xml => @objects } end end end class NextController < UniversalTemplatesController # Inherits from the universal_templates_controller # no other code in here end class YetAnotherController < UniversalTemplatesController # Inherits from the universal_templates_controller # no other code in here end etc... When these other controllers call what I showed you from within their specific views, it works fine because they are all part of the UniversalTemplatesController. I''m not sure if this is what you were asking but it''s another way of doing things especially if you are reusing a lot of the same code within other controllers. -- Posted via http://www.ruby-forum.com/.
On Jul 10, 11:17 pm, Bob O <bhan...-DoiYfCJD+p7by3iVrkZq2A@public.gmane.org> wrote:> does anyone know how i can make dynamic paths? > > say i had a partial for maybe an index list, but i want the link to > the show page to be dynamic so im able to use the partial for may > objects. > > <%= link_to "show", "#{object}" + _path(object) %> > > something along those lines.Are you looking for polymorphic_path ? Fred
If your routes are set up in the default RESTful style, then you should just be able to call: <%= link_to ''show'', object %> ...and the routing system will get what you mean. If things are more complicated, you may need of the other solutions here. Or, you could call a named route like this: <%= link_to ''show'', send("#{some expression that gives you the name} _path", object) %> but the previous example seems much cleaner. --Matt Jones On Jul 10, 6:17 pm, Bob O <bhan...-DoiYfCJD+p7by3iVrkZq2A@public.gmane.org> wrote:> does anyone know how i can make dynamic paths? > > say i had a partial for maybe an index list, but i want the link to > the show page to be dynamic so im able to use the partial for may > objects. > > <%= link_to "show", "#{object}" + _path(object) %> > > something along those lines.
Let me see if i can be more clear, and i will try some of the suggested solutions Im trying to make the route paths dynamic. Lets say I have 2 models document, and article I would have paths like document_path(document), documents_path, new_document_path etc... and similar for article article_path(article), articles_path, new_article_path etc.... In the past few apps I have been developing I have come across situations where I have had blocks of code (that could be a helper or partial) that are pretty much the same for various models. or im this particular case, an xml file that needs to be used by various models. So in these cases I want to be able to create 1 partial or helper or even an xml.builder that could allow the passing of any model object. Database attributes work as they should document.title or article.title could be passed in like so <%my_partial(object) %> with Def my_partial(object) object.title End The problem comes with the restful paths document_path(document) or article_path(article) Where I want to generate #{object}_path(object) or #{object)s_path or new_#{object}_path etc..... This way i can create 1 block of code to be used by many objects Does that make more sense? On Jul 11, 1:09 pm, Matt Jones <al2o...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:> If your routes are set up in the default RESTful style, then you > should just be able to call: > > <%= link_to ''show'', object %> > > ...and the routing system will get what you mean. If things are more > complicated, you may need of the other solutions here. Or, you could > call a named route like this: > > <%= link_to ''show'', send("#{some expression that gives you the name} > _path", object) %> > > but the previous example seems much cleaner. > > --Matt Jones > > On Jul 10, 6:17 pm, Bob O <bhan...-DoiYfCJD+p7by3iVrkZq2A@public.gmane.org> wrote: > > > does anyone know how i can make dynamic paths? > > > say i had a partial for maybe an index list, but i want the link to > > the show page to be dynamic so im able to use the partial for may > > objects. > > > <%= link_to "show", "#{object}" + _path(object) %> > > > something along those lines.
After diving into a few mentioned scenarios (thanks Frederick) the polymorphic_path and polymorphic_url is what i was looking for. thanks guys B On Jul 13, 7:40 am, Bob O <bhan...-DoiYfCJD+p7by3iVrkZq2A@public.gmane.org> wrote:> Let me see if i can be more clear, and i will try some of the > suggested solutions > > Im trying to make the route paths dynamic. > > Lets say I have 2 models document, and article > > I would have paths like > document_path(document), documents_path, new_document_path etc... > and similar for article > article_path(article), articles_path, new_article_path etc.... > > In the past few apps I have been developing I have come across > situations where I have had blocks of code (that could be a helper or > partial) that are pretty much the same for various models. or im this > particular case, an xml file that needs to be used by various models. > > So in these cases I want to be able to create 1 partial or helper or > even an xml.builder that could allow the passing of any model object. > > Database attributes work as they should > document.title or article.title could be passed in like so <%> my_partial(object) %> with > > Def my_partial(object) > object.title > End > > The problem comes with the restful paths > > document_path(document) or article_path(article) > > Where I want to generate > > #{object}_path(object) or #{object)s_path or new_#{object}_path > etc..... > > This way i can create 1 block of code to be used by many objects > > Does that make more sense? > > On Jul 11, 1:09 pm, Matt Jones <al2o...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote: > > > If your routes are set up in the default RESTful style, then you > > should just be able to call: > > > <%= link_to ''show'', object %> > > > ...and the routing system will get what you mean. If things are more > > complicated, you may need of the other solutions here. Or, you could > > call a named route like this: > > > <%= link_to ''show'', send("#{some expression that gives you the name} > > _path", object) %> > > > but the previous example seems much cleaner. > > > --Matt Jones > > > On Jul 10, 6:17 pm, Bob O <bhan...-DoiYfCJD+p7by3iVrkZq2A@public.gmane.org> wrote: > > > > does anyone know how i can make dynamic paths? > > > > say i had a partial for maybe an index list, but i want the link to > > > the show page to be dynamic so im able to use the partial for may > > > objects. > > > > <%= link_to "show", "#{object}" + _path(object) %> > > > > something along those lines.