Как сохранить неэкранированный HTML из формы Rails? - PullRequest
2 голосов
/ 19 ноября 2011

Я использую Rails 3.1 и мне нужно сохранить неэкранированный HTML-код, введенный в форму, но я не могу понять, как отключить escape по умолчанию.В моей форме у меня есть

<%= form_for(:post, :url=>{:action => 'create'}) do |f| %>              
    <%= f.text_field :title %>      
    <%= f.text_area :body %>        
    <%= submit_tag "Publish", :id=>"submit", :class => "cta" %>             
<% end %>

и в моем контроллере:

def create   
    @post = Post.new(params[:post])   
    if @post.save      
      redirect_to(:action => 'overview')
    else     
      render('new')
    end
end

Я пытался: escape => false в форме и raw () в контроллере, но ничегоработает.Как сохранить введенные данные в виде неэкранированного HTML?

Спасибо за помощь!

1 Ответ

1 голос
/ 19 ноября 2011

Вы можете использовать команду raw для получения чистого HTML, потому что Rails> 3 по умолчанию экранирует HTML:

<%= raw method_return_html_code %>

и если вы разрешаете пользователям вводить текст с разметкой HTML, например сообщения в блоге, посмотрите на гем CKEditor , который предоставит вам хорошую текстовую область для выполнения разметки HTML (как в Gmail). , Yahoo и т.д ...)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...