开发者

How to dump the database to yaml file with content '<% abc do %>ddd<% end %>'?

开发者 https://www.devze.com 2023-01-03 20:29 出处:网络
In my d开发者_JS百科atabase, there are some text content, one of them is: <% abc do %> ddd <% end %>

In my d开发者_JS百科atabase, there are some text content, one of them is:

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

When I dumped it to yaml with to_yaml(), it is like:

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

And then, when I use rake db:fixtures:load, such error occurs:

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

I checked the source of db:fixtures:load, and found rails will not treat the content as plain text, but erb template, so it will try to find and execute the 'abc' method.

How can I fix this? I think the default 'to_yaml' should not be used.


We can escape the '<%' as: How do I escape ERB code in fixtures?

I'm doing now: before writing to file, I replaced all '<%' with '<%%'. But it is not always work correctly. If the content has some non-English charactor, the content will be dump as 'binary', not text. Then when read back, the '<%%' won't be converted to '<%'.

0

精彩评论

暂无评论...
验证码 换一张
取 消