In Rails, how can I allow some html in a text area?

前端 未结 6 2599
灰色年华
灰色年华 2021-02-19 21:35

I have a Rails app (blog) that I am creating. Very basic stuff. In my content area I have a text area for the content of the post. I am needing to include some html in the text

相关标签:
6条回答
  • 2021-02-19 21:46

    Have you tried this in the views?

     <%= content.html_safe %>
    
    0 讨论(0)
  • 2021-02-19 21:48

    The HTML safe method is actually .html_safe. Just tested on a text field.

    For example:

    <%= @item.description.html_safe %>
    
    0 讨论(0)
  • 2021-02-19 21:59

    text_area_tag is probably what you want.

    0 讨论(0)
  • 2021-02-19 22:03

    This is an old question but I guess there's a pretty straight forward view helper for this: sanitize. I presume you'd want to render the HTML tags entered by the user. For that purpose, save the content as a string and render as HTML using sanitize.

    Example usage:

    sanitize @post, tags: %w(strong em a code pre h2 h3 p blockquote ul ol li br),
                    attributes: %w(href class)
    

    The tags option allows you to specify which tags to use and same with the html attributes.

    0 讨论(0)
  • 2021-02-19 22:03

    Are you looking for something similar to the bold, italic, ... options you get when posting in stackoverflow? If so, I would suggest Markitup, a text-editor plugin for jQuery. Once you get this set-up, you'll be able to enter mark up in your text area (e.g. Markdown, bbcode, ...). When you actually display the result on the page, you simply need to have Ruby parse the mark up language you chose.

    E.g.

    <%= @user.bio.bb_code %>
    

    Using this method, you allow your users enter styled text in a safe fashion.

    0 讨论(0)
  • 2021-02-19 22:09

    With the forthcoming Rails 6, you will be able to use a new rich_text_area tag to create a rich text editor in your forms like this:

    <%= form_with(model: article) do |f| %>
      <div class="field">
        <%= f.label :content %>
        <%= f.rich_text_area :content %>
      </div>
    <% end %>
    

    See Action Text Rails Guide

    0 讨论(0)
提交回复
热议问题