I''m developing a site compound by a static part and a dynamic one.
I still use things like "link_to(...)", etc in the static part within
rhtml
files.
In the static part, I don''t have the notion of controller and model.
Reading
some article about the subject, I got the following situation:
- created a controller, let me call it "static";
- put my rhtml files under app/views/static/.
Except for the "index" page, all the rest are static pages.
The problem is that I have a lot of static pages to write and it would be
confuse to put all them in this directory.
For instance, if I have a menu with several submenus and each submenus could
have others subsubmenus, I would like the following structure:
-app/views/static/
  - menu1
    - menu1/submenu1
    - menu1/submenu2
  - menu2/
    - menu2/submenu1
    - menu2/submenu2
  - otherfile
I know I could do something like:
-app/views/static/
  - menu1
  - menu1_submenu1
  - menu1_submenu2
But I would prefer the other much cleaner solution.
I first tried some links like:
  link_to => ''id'' => ''submenu1''
The link worked as I expected, but after noticing it didn''t work, I
remembered that Rails would try to run the action ''menu1'' with
the ''submenu1'' as a parameter, but I''m not using this
parameter in this
action.
I would not like to write an action for every view I want in a
subdirectory...
What would be the Rails way to achieve what I want?
I want Rails to render all the remaining url after the
''static'' controller
as the local url after app/views/static.
Let me know if I was not clear. Sorry for the big message, but I
couldn''t
make my question clear enough in a small message.
Thanks in advance,
Rodrigo.
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Ruby on Rails: Talk" group.
To post to this group, send email to
rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
To unsubscribe from this group, send email to
rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---
Rodrigo Rosenfeld Rosas wrote:> > I''m developing a site compound by a static part and a dynamic one. > > I still use things like "link_to(...)", etc in the static part within > rhtml files. > > In the static part, I don''t have the notion of controller and model. > Reading some article about the subject, I got the following situation: > > - created a controller, let me call it "static"; > - put my rhtml files under app/views/static/. > > Except for the "index" page, all the rest are static pages. > > The problem is that I have a lot of static pages to write and it would be > confuse to put all them in this directory. > > For instance, if I have a menu with several submenus and each submenus > could have others subsubmenus, I would like the following structure: > > -app/views/static/ > - menu1 > - menu1/submenu1 > - menu1/submenu2 > - menu2/ > - menu2/submenu1 > - menu2/submenu2 > - otherfile > > I know I could do something like: > -app/views/static/ > - menu1 > - menu1_submenu1 > - menu1_submenu2 > > But I would prefer the other much cleaner solution. > > I first tried some links like: > link_to => ''id'' => ''submenu1'' > > The link worked as I expected, but after noticing it didn''t work, I > remembered that Rails would try to run the action ''menu1'' with > the ''submenu1'' as a parameter, but I''m not using this parameter in this > action. > > I would not like to write an action for every view I want in a > subdirectory... > > What would be the Rails way to achieve what I want? > > I want Rails to render all the remaining url after the ''static'' controller > as the local url after app/views/static. > > Let me know if I was not clear. Sorry for the big message, but I couldn''t > make my question clear enough in a small message. > > Thanks in advance, > > Rodrigo. >I ended up with the following solution: in static_controller.rb: before_filter :show_static def show_static if request.request_parameters[''id''] # render :template => request.env[''PATH_INFO''] # the solution above is probably server dependent. # The solution below is probably a better one: render :template => request.request_parameters[''controller''] + ''/'' + request.request_parameters[''action''] + ''/'' + request.request_parameters[''id''] end end Any thoughts about this solution? Regards, Rodrigo. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
> def show_static > if request.request_parameters[''id''] > # render :template => request.env[''PATH_INFO''] > # the solution above is probably server dependent. > # The solution below is probably a better one: > render :template => request.request_parameters[''controller''] + ''/'' + > request.request_parameters[''action''] + ''/'' + > request.request_parameters[''id''] > end > endI suspect what you want is a custom route. Something like map.connect ''static/*url_parts'', :controller => "static", :action => "show" Have the show action of the static_controller put the url_parts array back together with ''/'' into ''menu1/submenu1'' and then process the template at app/views/static/menu1/submenu1.rhtml --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
Cynthia Kiser wrote:>> def show_static >> if request.request_parameters[''id''] >> # render :template => request.env[''PATH_INFO''] >> # the solution above is probably server dependent. >> # The solution below is probably a better one: >> render :template => request.request_parameters[''controller''] + ''/'' + >> request.request_parameters[''action''] + ''/'' + >> request.request_parameters[''id''] >> end >> end > > > I suspect what you want is a custom route. Something like > > map.connect ''static/*url_parts'', :controller => "static", :action => > "show" > > Have the show action of the static_controller put the url_parts array back > together with ''/'' into ''menu1/submenu1'' and then process the template at > app/views/static/menu1/submenu1.rhtmlThanks, I didn''t know this trick of using arrays in routes... Rodrigo. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---