Here's the issue. Sorry I didn't post it before, but Vista locked up as usual. Whine whine whine.
Anyway, this does not print out 'yo':
puts
'yo'
You can't put the argument to a method on a new line like that. It's the same as puts; 'yo'. The first statement outputs a linefeed, and the second one thinks about 'yo' briefly, then throws it away (or returns it).
Your replace_html has a linefeed between itself and its first argument.
Tips: Write more unit tests, and don't follow the example of the Rails gurus. Never cram everything into one line! Neat formatting would have saved you from learning how Ruby parses method arguments...
New question: How is this supposed to work?
<%=
button_to_function 'Personal account' do |rjs|
rjs.replace_html 'newagentpersonal', # this comma , is okay!
:partial => 'user/agents/newagentpersonal'
end
%>
(I renamed 'page' to 'rjs' because the world has too danged many variables called 'page' in it!)
I thought that :partial would run on the server side, cook a page, and let you send it over a wire. So maybe that usage of .replace_html is only going to cram your HTML with a big JavaScript string containing more HTML. Maybe you need that, but if I tried to cook that partial with fresh variables, collected from the page at runtime, they would not affect the partial's contents. And that, in turn, would leave me with less reasons to use a partial!
Solution, in case anyone still wonders (obvious for non-n00bs):
To have partials in partials (etc.), like a tree-like structure, and at
the same time to be able to let the user choose which partials to view
(which "branch of the tree" to open or close, for example in a form that
should be customized by the user, on-the-fly), just put the
"page.replace_html" code (Ajax) in the *controller*.
(DON'T use a "button_to_function" *within* such a partial!)
Solution, in case anyone still wonders (obvious for non-n00bs):
To have partials in partials (etc.), like a tree-like structure, and at the same time to be able to let the user choose which partials to view (which "branch of the tree" to open or close, for example in a form that should be customized by the user, on-the-fly), just put the "page.replace_html" code (Ajax) in the *controller*.
Yup. That's what I implied, but I could not figure out the code's actual intent, so I couldn't say that.
(DON'T use a "button_to_function" *within* such a partial!)
Yet sometimes a button_to_function can pull in a static partial, and that's what you need... (-: