Hallo,

ich stimme Benny zu. Das Plugin/Gem acts_as_sanitiled ist dafür auch recht gut 
geeignet:
http://github.com/dasil003/acts_as_sanitiled

<http://github.com/dasil003/acts_as_sanitiled>Es unterstützt neben dem von dir 
beschriebenen Szenario (Linebreaks bzw. Paragraphs einfügen) auch die Säuberung 
des Texts von "gefährlichen" Tags und die Umwandlung von Textile in HTML. 
Vielleicht ist das ja was für dich.
--
Viele Grüße
Ralph von der Heyden



Am 22.09.2010 um 11:57 schrieb Benjamin Behr:

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<mailto:tho...@vondeyen.com>
web     thomas.vondeyen.com<http://thomas.vondeyen.com/>
twitter twitter.com/tvdeyen<http://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<mailto:rubyonrails-ug@headflash.com>
http://mailman.headflash.com/listinfo/rubyonrails-ug

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

<ATT00001..txt>

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

Antwort per Email an