Hello,
I''m still dtarting with ruby on rails. And I''m trying to have
a menu
depending on the current controller/method.
Here is what I was thinking of (please tell me if there''s a better way
to do it):
I have a database with menu_groups (corresponding to controllers) and
menu_elements(corresponding to methods). Each menu_element belongs to
one menu_group.
I created a class Menu where I get all the menu_groups and
menu_elements, and where I have the active controller and method.
"
class Menu
  attr_reader :menu_groups
  attr_reader :menu_group_active
  attr_reader :menu_elements
  attr_reader :menu_element_active
  def initialize
    current_url_elements=request_uri().split("/")
    @menu_groups << MenuGroup.find(:name,:order => "id")
    @menu_group_active = controller.controller_name
    @menu_elements << MenuElement.find(:all,:order =>
"menu_group_id
id")
    @menu_elements_active = current_url_elements[-1]
  end
end
"
Then, thanks to the attributes of this class I''ll be able in my layout
to make the difference between active and non active groups/elements.
The problem here is that I don''t know how to get the url into a
variable...
If my method is good, can you please tell me how to make it works?
If not, can you show me the right way to do this??
Thanks a lot
Best regards,
Matthieu
-- 
Posted via http://www.ruby-forum.com/.
--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---
Matthieu
2007-Jan-25  20:18 UTC
Re: How to change the menu depending on the controller/metho
I add something: I have one common layout for all my controllers. -- Posted via http://www.ruby-forum.com/. --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---
Unless I am missing something...Make layouts out of your menus then do
something like this
In your controllers or even your application.rb
layout :select_layout
then this method at the end of your controller
private
  def select_layout
    [''action_name1'',
''action_name2''].include?(action_name) ? "layout1"
: "layout2"
  end
Storing references to a menu in a DB seems wrong.
Help that helps.
On Jan 25, 12:18 pm, Matthieu
<rails-mailing-l...-ARtvInVfO7ksV2N9l4h3zg@public.gmane.org>
wrote:> I add something:
>
> I have one common layout for all my controllers.
> 
> --
> Posted viahttp://www.ruby-forum.com/.
--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---
Matthieu
2007-Jan-25  21:08 UTC
Re: How to change the menu depending on the controller/metho
Kim wrote:> Make layouts out of your menusDo you mean, I have to do one layout for every situation my menu will be in (=the number of method I''ll have)?? It seems a lot to me and maybe I''m wrong but it would induce a lot of redundency, no?> > In your controllers or even your application.rb > layout :select_layout > > then this method at the end of your controller > private > def select_layout > [''action_name1'', ''action_name2''].include?(action_name) ? "layout1" > : "layout2" > end >what does ''action_name'' represent ? -- Posted via http://www.ruby-forum.com/. --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---
No - you make a layout for the menu - how many menus do you have? Your menu should retain a consistant look across most of your controllers/actions - unless I am not understanding something. I don''t understand what you mean by "the situation my menu will be in (=the number of method I''ll have)" If you mean, for example, that you want the "comments" menu item to be a different color when you are performing that action then use CSS and helper methods like link_to_unless_current amongst others. It seems like you might want to read some ofthe multiple of books this list preaches about. def select_layout> > [''action_name1'', ''action_name2''].include?(action_name) ? "layout1" > > : "layout2" > > endwhat does ''action_name'' represent ?action_name is the name of the action that should use layout1. On Jan 25, 1:08 pm, Matthieu <rails-mailing-l...-ARtvInVfO7ksV2N9l4h3zg@public.gmane.org> wrote:> Kim wrote: > > Make layouts out of your menusDo you mean, I have to do one layout for every situation my menu will be > in (=the number of method I''ll have)?? > It seems a lot to me and maybe I''m wrong but it would induce a lot of > redundency, no? > > > > > In your controllers or even your application.rb > > layout :select_layout > > > then this method at the end of your controller > > private > > def select_layout > > [''action_name1'', ''action_name2''].include?(action_name) ? "layout1" > > : "layout2" > > endwhat does ''action_name'' represent ? > > -- > Posted viahttp://www.ruby-forum.com/.--~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---