【发布时间】:2019-08-22 15:41:38
【问题描述】:
我尝试重写其中一个进程来读取 Haml 文件以替换现有的工作 HTML 文件,如下所示:
这是控制器中的现有代码:
f= "app/views/newform/.html.erb"
@ui= File.read(f)
根据 Haml 引擎 documentation 我尝试将其替换为
html_engine = Haml::Engine.new(f)
@ui= html_engine.render
得到这个结果只是文件名:
=> "app/views/articles/new_article/form_article.haml\n"
而不是(在 HTML 中时)
[1] pry(#<JinController>)> @ui
=> "<%\n article = Article.new\n%>\n<%= fields_for article do |f| %>\n <%= f.label :title, \"Title\" %>\n <%= f.text_field :title %>\n
<%= f.label :text, \"Text\" %>\n <%= f.text_field :text %>\n <%=
f.label :text, \"Keywords\" %>\n <%= f.text_field :keywords %>\n <%=
f.label :body, \"Body Content\" %>\n <%= f.cktext_area :body %>\n<%
end %>\n"
这是 HTML:
<%
article = Article.new
%>
<%= fields_for article do |f| %>
<%= f.label :title, "Title" %>
<%= f.text_field :title %>
<%= f.label :text, "Text" %>
<%= f.text_field :text %>
<%= f.label :text, "Keywords" %>
<%= f.text_field :keywords %>
<%= f.label :body, "Body Content" %>
<%= f.cktext_area :body %>
<% end %~
还有哈姆:
.container
%div(style="text-align:center")
- @title= 'New Article'
- article = @article
= fields_for article do |f|
= f.label :title, "Title"
= f.text_field :title
= f.label :text, "Description"
= f.text_field :text
= f.label :text, "Keywords"
= f.text_field :keywords
= f.label :body, "Body Content"
= f.cktext_area :body
那么如何在这段代码中用 Haml 替换 HTML 呢?
【问题讨论】:
-
您是否在此处缺少
::Haml:Engine.new(f)? -
是的,让我再试试这个程序
标签: ruby-on-rails ruby haml