Print/put in ERb


#1

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/ruby-talk/155581
hatte ich nichts gefunden.

Danke,
Beate


#2

Sorry, noch was vergessen:

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

Beate


#3

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


#4

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 :slight_smile:

GrüßeBeate


#5

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§ }.join %>

Michael


Michael S.
mailto:removed_email_address@domain.invalid
http://www.schuerig.de/michael/