Ah, that makes sense now. For the sake of correctness, the final code
(with a yield and without the unused routes variable):

def menu_item text, url = {}
  unless url[:access] and active_user.cannot? url[:access]

    unless url.is_a? String
      if url[:controller]
        url = url_for url
      else
        url = url_for :controller => text
      end
    end

    unless text.is_a? String
      text = t text
    end

    active = request.request_uri == url

    content = link_to text, url
    if block_given?
      content << yield
    end

    "<li#{' class="active"' if active}>#{content}</li>"
  end
end

Thomas

On Apr 21, 5:07 pm, Michael Pavling <[email protected]> wrote:
> On 21 April 2010 22:00, Thomas Allen <[email protected]> wrote:
>
> > On Apr 21, 4:37 pm, Michael Pavling <[email protected]> wrote:
> >> On 21 April 2010 20:36, Thomas Allen <[email protected]> wrote:
>
> >> >    active = request.request_uri == url
>
> >> Would using url_for() not save you a lot of hassle generating that url?
>
> > But why do you think that would change the line you quoted?
>
> It wouldn't necessarily; I was just referring to its use of the "url" 
> variable.
>
> --
> 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 [email protected].
> To unsubscribe from this group, send email to 
> [email protected].
> For more options, visit this group 
> athttp://groups.google.com/group/rubyonrails-talk?hl=en.

-- 
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 [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-talk?hl=en.

Reply via email to