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.