Как вывести базу данных в файл yaml с содержимым «<% abc do%> ddd <% end%>»? - PullRequest
0 голосов
/ 19 июня 2010

В моей базе данных есть текстовый контент, один из них:

<% abc do %>
ddd
<% end %>

Когда я выгрузил его в yaml с to_yaml(), он выглядит так:

content: |-
    <% abc do %>
    ddd
    <% end %>

И затем, когда я использую rake db:fixtures:load, возникает такая ошибка:

The exact error was: 
  NoMethodError: undefined method 'abc' for main:Object 

Я проверил источник db:fixtures:load, и обнаружил, что рельсы не будут обрабатывать содержимое как простой текст, но шаблон erb, поэтому он попытается найти и выполнить метод 'abc'.

Как я могу это исправить?Я думаю, что по умолчанию 'to_yaml' не следует использовать.

1 Ответ

1 голос
/ 19 июня 2010

Мы можем избежать ' Как мне избежать кода ERB в приборах?

Я делаю сейчас: перед записью в файл я заменил все «<%» на «<%%». Но это не всегда работает правильно. Если у контента есть какой-то неанглоязычный характер, контент будет дамп как «двоичный», а не как текст. Затем при обратном чтении «<%%» не будет преобразовано в «<%». </p>

...