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.
Ad91bce9c9a8c68b6942607e4721f74e?d=identicon&s=25 Beate Paland (Guest)
on 2008-10-06 18: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
Ad91bce9c9a8c68b6942607e4721f74e?d=identicon&s=25 Beate Paland (Guest)
on 2008-10-06 18: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
16e4406efeae94421d08b13bd053536d?d=identicon&s=25 Thomas Baustert (Guest)
on 2008-10-06 19:06
(Received via mailing list)
Hallo Beate,

versuche mal:

<% ...

  _erbout << variable.to_s;
%>

Gruß,
Thomas

Am 06.10.2008 um 18:39 schrieb Beate Paland:

>
---
Thomas Baustert
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
Bce1d1b7c3ec7b577dcb42e254899e6b?d=identicon&s=25 Michael Schuerig (Guest)
on 2008-10-06 20:24
(Received via mailing list)
On Monday 06 October 2008, Beate Paland 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 Schuerig
mailto:michael@schuerig.de
http://www.schuerig.de/michael/
Ad91bce9c9a8c68b6942607e4721f74e?d=identicon&s=25 Beate Paland (Guest)
on 2008-10-07 10:53
(Received via mailing list)
Hallo Thomas,

2008/10/6 Thomas Baustert <thomas.baustert@b-simple.de>:

> 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.