2015-01-22 4 views
0

Это, наверное, немой вопрос ... Я загружаю HTML-файл с разметкой HTML, которую хочу выполнить в представлении, но в настоящее время это просто показывает мне текст.Прочитайте содержимое html-файла AS html не как текст

Просмотр Код: <% = @parsed_protip%>

код контроллера для вида:

def show 
    protip = File.read(File.join("app/assets/protips/" + params[:id] + ".html.erb")) 
    @parsed_protip = Nokogiri::HTML(protip) 
end 

мне нужно мнение, чтобы сделать все HTML в файле, Например, файл может выглядеть примерно так:

<title>Some title</title> 
<div class="row"> 
    <%= image_tag "..." %> 
</div> 
<div class="row"> 
    <p>asdfasdf</p> 
</div> 

Но выход я получаю в основном это в один большой текст пункта:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Should you buy or rent gear?</title> <meta name="description" content="Interactive calculator to help you figure out whether you should rent or buy your own gear"> </head> <body> <div class="row"> </div> <div class="row"> <div class="col-xs-12 col-sm-8"> <div class="col-xs-8 col-xs-offset-2"> <h1>Should you buy your own snowsports apparel?</h1> <p>Your friend invited you to Tahoe this weekend. You’ve never skied before and you’re excited for the sheer adrenaline rush of flying down some slopes. You leave work early on Thursday to pick up some a... 
+1

Попробуйте '<% = @ parsed_protip.html_safe%>' – Pavan

+0

Итак, html_safe работает без Nokogiri, но проблема в том, что рубин не оценивает. В любом случае, чтобы это сработало? Или я должен просто преобразовать Ruby в прямой HTML? – james

ответ

0

Ну, Nokogiri::HTML разбирает текст в Nokogiri::HTML объект не HTML, как вам нужно.

Вместо этого, конвертируйте весь код Ruby в файл, который вы хотите разобрать на простой HTML. Затем используйте html_safe, чтобы преобразовать текст в действительный HTML.

+0

Понял, проблема в том, что ERB не оценивает. Есть ли способ сделать это? – james

+0

Разметка ERB недействительна HTML, поэтому нет, она не может быть оценена парсером HTML. –

Смежные вопросы