Moin,

ich würde die Idee grundsätzlich erst einmal in Frage stellen. Wenn du 
Zeilenumbrüche in "<br />"-Tags umwandeln möchtest, wird aus:

Erste Zeile\n
Zweite Zeile\n
Dritte Zeile

ein:

Erste Zeile<br />Zweite Zeile<br />Dritte Zeile

Das Bearbeiten eines solchen Textes ist meines Erachtens unvorteilhaft. Ich 
würde dir einen Ansatz empfehlen, wie es zum Beispiel BlueCloth oder RedCloth 
verwendet. Die Gems schreiben den Text so wie er ist in die Datenbank und 
konvertiert ihn dann zur Ausgabe im Template in HTML. Die einfachste Methode, 
ohne auf eines der Gems zurückzugreifen, wäre wahrscheinlich dir einen Accessor 
für das Textfeld zu schreiben, den du dann in der Ausgabe rufst. Das Ganze 
könnte dann so aussehen:

def textfeld_in_html
  textfeld.gsub(/\n/, '<br />')
end

Solltest du trotzdem die Newlines in html-Linebreaks vor dem Speichern in die 
DB umwandeln wollen, wird der Vorschlag von Thomas funktionieren.

Schöne Grüße,
Benny

Am 22.09.2010 um 11:39 schrieb Thomas von Deyen:

> before_save :convert_newlines
> 
> private
> 
> def convert_newlines
>       textfeld.gsub!(/\n/, ''<br/>")
> end
> 
> 
> Thomas von Deyen
> 
> mobile  +49 (0)151 2296 7864
> mail    tho...@vondeyen.com
> web     thomas.vondeyen.com
> twitter twitter.com/tvdeyen
> 
> Save the environment:
> 
> Before printing this email, 
> please assess if it is really 
> needed!
> 
> Am 22.09.2010 um 11:31 schrieb Tobias Weiß:
> 
>> Hallo,
>> 
>> ich würde gerne alle Zeilenumbrüche in Textfeldern in <br />-Tags umwandeln, 
>> bevor ein Objekt in die DB wandert.
>> 
>> Dafür habe ich folgenden Callback:
>> 
>> before_save :new_line_to_br_tag
>> 
>> def new_line_to_br_tag
>>   self.attributes.each_value do |value|
>>     value.gsub!("\n", "<br />") if (!value.nil? && 
>> value.class.eql?("String"))
>>   end
>> end
>> 
>> Scheint aber nicht zu funktionieren, die Strings landen unverändert in der 
>> DB. Irgendeine Idee, was hier falsch ist?
>> 
>> Grüße, Tobi
>> _______________________________________________
>> rubyonrails-ug mailing list
>> rubyonrails-ug@headflash.com
>> http://mailman.headflash.com/listinfo/rubyonrails-ug
> 
> _______________________________________________
> rubyonrails-ug mailing list
> rubyonrails-ug@headflash.com
> http://mailman.headflash.com/listinfo/rubyonrails-ug

_______________________________________________
rubyonrails-ug mailing list
rubyonrails-ug@headflash.com
http://mailman.headflash.com/listinfo/rubyonrails-ug

Antwort per Email an