从haml转换为erb
Posted
技术标签:
【中文标题】从haml转换为erb【英文标题】:Convert from haml to erb 【发布时间】:2012-11-11 02:16:23 【问题描述】:我尝试将代码从 haml 转换为 erb,但我卡住了,不知道为什么。
这是我要转换的原始代码:https://github.com/gmarik/simple-backend-example/blob/master/app/views/backend/resource/_index.html.haml
这就是我现在所拥有的。有人可以看看它并给我一些提示。谢谢。
我最怀疑这条线:
%tr[resource]odd_or_even
我认为它可能是这样的:
<tr> <% @resourceodd_or_even %>
RubyMine 在这一行给了我一个错误:
<%= paginate collection %>
<% content_for(:header) do %>
<h1><%= resource_class.model_name.human(count: 2) %></h1>
<ul class="tabs">
<li class="active"><%= link_to "Index", "#" %></li>
<li><%= link_to "New", new_resource_path %> </li>
</ul>
<table class='zebra-striped'>
<thead>
<tr>
<% attributes.each do |attr| %>
<th> <%= resource_class.human_attribute_name(attr) %></th>
<th> </th>
</tr>
</thead>
<tbody>
<% collection.each do |resource| %>
<tr> <% @resourceodd_or_even %>
<% attributes.each do |attr| %>
<td> <%= resource.public_send(attr).to_s.truncate(20) %> </td>
<td class='row-actions'>
<%= link_to 'show', resource_path(resource) %>
|
<%= link_to 'edit', edit_resource_path(resource) %>
|
<%= link_to 'destroy', resource_path(resource), method: :delete, confirm: "Are you sure?" %>
</td>
<% end %>
</tbody>
</table>
<%= paginate collection %>
【问题讨论】:
【参考方案1】:查看这里的文档:http://haml.info/docs/yardoc/file.REFERENCE.html#object_reference_
我会说是:
<tr id="<%= "#resource.class.name.underscore_#resource.to_key" %>" class="<%= resource.class.name.underscore %>">
这是翻译%tr[resource]
。
现在,odd_or_even
只会将帮助程序 odd_or_even
的结果哈希值转换为 tr
上的属性。
如果我们看一下这里的方法定义:https://github.com/gmarik/simple-backend-example/blob/master/app/helpers/backend/application_helper.rb
我们看到它只是调用cycle
来设置一个额外的类。因此我们最终得到:
<tr id="<%= "#resource.class.name.underscore_#resource.to_key" %>" class="<%= "#resource.class.name.underscore #cycle("odd", "even", name: "rows")" %>">
现在,所有这些都不能解决paginate
的问题。如果您仍然遇到此问题,请添加错误消息。
【讨论】:
好吧,让我们删除所有这些 cmets :p 非常感谢您的回答。我认为 如果我删除它不会有太大影响,所以我已经这样做了。它仍然显示错误“[RUBY] Expected: end”,虽然我不知道哪里有问题。这是当前代码:pastebin.com/sAuXy2F0 你没有关闭<% content_for(:header) do %>
。在文件末尾添加<% end %>
以上是关于从haml转换为erb的主要内容,如果未能解决你的问题,请参考以下文章
在 Rails 中使用 HAML 而不是 ERB 时 CSS 未加载 (404)