запись строк внутри головного элемента в рельсах - PullRequest
1 голос
/ 12 марта 2012

Я работаю с сайтом, используя клиентские шаблоны через knockout.js.

API-интерфейс сервера и логин написаны в рельсах.

То, что я хочу сделать, - это поместить каждый HTML-шаблон на стороне клиента в отдельный файл, а затем поднять эти шаблоны на страницу с помощью шаблонов. Подобно тому, как файлы javascript поднимаются.

Итак, в моем приложении / assets есть каталог, который называется templates Каждый шаблон в каталоге должен быть добавлен на страницу в теге скрипта с type = "text / html"

Я дошел до того, чтобы создать реальный контент шаблонов, теперь я просто хочу поместить его в файл html.erb в свойстве head. Однако он всегда появляется в теле как обычный текст, а не как HTML.

Я определил следующий метод в моем контроллере:

  def html_templates
    output = ''
    templates = Dir.glob 'app/assets/templates/*'
    templates.each { |template| 
      file = File.open(template, "rb")
      output += '<script type="text/html" id="'+(File.basename template, '.html')+'">'
      output += file.read
      output += '</script>'

    }
    return output

  end

Я пытаюсь добавить его в файл макета .erb следующим образом:

<head>
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <%= html_templates %>
    <%= stylesheet_link_tag    "application" %>
    <%= javascript_include_tag "application" %>
    <%= csrf_meta_tags %>
</head>

И все же вывод всегда помещается в тело со всеми моими html-кодами.

Кроме того, если у кого-то есть лучшие решения, нужно решить эту проблему. Пожалуйста, порекомендуйте.

1 Ответ

1 голос
/ 12 марта 2012

Спасибо :) поэтому в основном вы должны использовать метод raw всякий раз, когда вы не хотите, чтобы вывод был экранирован

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