render partials in helper

hee people,

Is it possible to render partials in helpers ?

Why I want this:
I have a menu that list many links but some of those items are children
of other items.
so i want to have different partials .

Of course I could set the ruby code in my view but that is not cool (I
think :P)

I hope someone nows if this is possible

jeljer te wies

hee people,

Is it possible to render partials in helpers ?

Yup, that's fine. Is there a reason you thought it wouldn't be
possible?

Fred

well I tryed to have a helper method like this:

def test
render :partial 'menu/test'
end

this didn't work

well I tryed to have a helper method like this:

def test
render :partial 'menu/test'
end

this didn't work

That's syntactically incorrect - it should be
render :partial => 'menu/test'

If that's not the problem then you're going to have to be a little
more explicit than 'it didn't work'

Fred

Frederick Cheung wrote:

That's syntactically incorrect - it should be
render :partial => 'menu/test'

If that's not the problem then you're going to have to be a little
more explicit than 'it didn't work'

Fred

OOh I am sorry ... I wasn't clear.

what i have now is this:

def set_menu
    render :partial => 'menu/menu_item'
    render :partial => 'menu/menu_item'
  end

I want to render more partials in one helper method. But it renders only
one partial !...
so my real question is .

is it possible to render multiple partials in one helper method

Frederick Cheung wrote:

what i have now is this:

def set_menu
render :partial => 'menu/menu_item'
render :partial => 'menu/menu_item'
end

The problem here is that you might not quite understandr what happens
when you do <%= some_helper%>
Erb basically calls that method, calls to_s on the result and sticks
it into the document, so the key thing here is getting your set_menu
helper to return the right thing
When you call render :partial => '...' a string is returned containing
the appropriate data. In ruby the value returned by a function is
whatever the last statement evaluated, ie the second call to render.
If you want to return the concatenation of those two things then you
need to stick them together yourself, eg

def set_menu
  render( :partial => 'menu/menu_item') +
  render( :partial => 'menu/menu_item')
end

Fred

PS: if that was your original question, saying so from the start would
have saved time for everyone involved.

yes you are right...
But at first I thought that the problem was that it wasn't possible to
render partials at al.
(and I couldn't find the answer on google)

thanxs ! allot ...
and I hope to answer questions on this forum as soon as I have a better
understanding of ruby and rails.