Phrogz
9/28/2007 6:36:00 PM
On Sep 28, 11:35 am, SpringFlowers AutumnMoon
<summercooln...@gmail.com> wrote:
> hm, that's interesting, the program "erb" can already take
>
> puts "string"
>
> and output it...
No, it can't. The ruby program evaluates that and outputs it
separately. It is not part of the string resulting from evaluating the
ERB template.
> but in a somewhat funny order:
>
> <%= "haha" %>
>
> <% puts "so how about this?" %>
>
> C:\rails\depot>erb try_erb.txt
> so how about this?
>
> haha
What's happening here is that while evaluating the ERB template, the
#puts method is called...which outputs it immediately. (And as a
result, doesn't happen to change the ERB string at all.) Then, later,
the template finishes, and has just the contents of "haha".
> However, when I use puts "string" in index.rhtml on RoR, it won't get
> displayed. So RoR actually uses eRuby but not erb, and both are just
> called "Embedded Ruby" as "ERb"?
In RoR, you'll see the output of the puts call coming out in your
console or logfile (I think); since the output isn't placed in the ERB
result string, however, it never gets put in the HTML that is sent to
the web browser.