Question

Une embaressing question, mais je ne peux pas sembler traduire la documentation à une form_for réelle. Ceci est tout le site offre ..

RedCloth.new("Some text").to_html
 #=> "<p>Some text</p>"

Je reçois que c'est ce que je parse après son été sauvés. Mais comment puis-je l'enregistrer sous forme de texte balisée?

Voici ma tentative au début, mais je ne sais pas comment régler le paramètre pour enregistrer le textarea comme RedCloth. Toutes les idées?

- form_for @text do |f|
   # some RedCloth instantiation
   f.submit
Était-ce utile?

La solution

Vous ne pas enregistrer le paramètre analysé comme RedCloth comme ça, ni ce que je recommande. Dans l'analyse RedCloth entraînera la valeur initiale étant perdue, sauf si vous avez enregistré la sortie dans un champ alternatif, qui est ce que je serait recommander.

Vous pouvez utiliser un before_save dans votre modèle pour analyser cette valeur et le stocker:

before_save :parse_text

# your model methods go here

private

  def parse_text
    self.parsed_text = RedCloth.new(text).to_html
  end

Si vous voulez rendre la valeur parsed_text à votre avis vous devrez dire Rails qu'il est sûr en faisant ceci:

@object.parsed_text.html_safe

Cependant, le code contenu ici ne compte pas pour les gens de mélange Markdown et HTML, alors très prudent lorsque vous l'utilisez.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top