Forum: Rails Germany print/put in ERb

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
Beate P. (Guest)
on 2008-10-06 20:38
(Received via mailing list)
Hallo,

eine interessante Frage (von einem Kunden), auf die ich bisher noch
keine Antwort gefunden habe.

Im ERb habe ich sowas:

<% for page in pages

  variable = page.title
  variable += page.author.name
  variable += page.published_at

  ??? variable

end %>

(dass das jetzt nicht unbedingt Sinn macht, sei mal dahingestellt,
aber so ähnlich war der Fall gerade)

Und da wo das ??? steht, soll eine Funktion hin, die mir die variable
ausgibt. Es kann doch nicht, dass ich vorher mit %> schließen muss, um
ein <%= variable %> benutzen zu können? Habe auch gesucht, aber außer dem
hier
http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/...
hatte ich nichts gefunden.

Danke,
Beate
Beate P. (Guest)
on 2008-10-06 20:39
(Received via mailing list)
Sorry, noch was vergessen:

puts/print hatte ich natürlich getestet, aber das müllt nur das Logfile voll :(

Beate
Thomas B. (Guest)
on 2008-10-06 21:06
(Received via mailing list)
Hallo Beate,

versuche mal:

<% ...

  _erbout << variable.to_s;
%>

Gruß,
Thomas

Am 06.10.2008 um 18:39 schrieb Beate P.:

>
---
Thomas B.
b-simple.de - Ruby on Rails - Entwicklung & Training
Bei den Mühren 70, 20457 Hamburg
+49 (173) 2391143 - thomas.baustert(at)b-simple.de
Umsatzsteuer-Identifikationsnummer: DE814405137
Michael S. (Guest)
on 2008-10-06 22:24
(Received via mailing list)
On Monday 06 October 2008, Beate P. wrote:
> end %>
>
> (dass das jetzt nicht unbedingt Sinn macht, sei mal dahingestellt,
> aber so ähnlich war der Fall gerade)
>
> Und da wo das ??? steht, soll eine Funktion hin, die mir die variable
> ausgibt. Es kann doch nicht, dass ich vorher mit %> schließen muss,
> um ein <%= variable %> benutzen zu können?

Siehe concat (und Kernel#binding)

  concat(variable, binding)

Das geht, aber du solltest es so nicht machen. Die Funktionalität gehört
nicht in einen View, eher in ein oder mehrere Helper-Methoden.

  def format_page_title(page)
    "#{page.title}#{page.author.name}#{page.published_at}"
  end

Und dann

  <%= pages.map { |p| format_page_title(p) }.join %>

Michael

--
Michael S.
mailto:removed_email_address@domain.invalid
http://www.schuerig.de/michael/
Beate P. (Guest)
on 2008-10-07 12:53
(Received via mailing list)
Hallo Thomas,

2008/10/6 Thomas B. <removed_email_address@domain.invalid>:

> versuche mal:
>
> <% ...
>
>  _erbout << variable.to_s;
> %>

Das tut, vielen Dank! Da wäre ich aber auch nicht draufgekommen :)

GrüßeBeate
This topic is locked and can not be replied to.