我尝试将代码从haml转换为erb,但我遇到了困难而且不知道原因。
以下是我要转换的原始代码:https://github.com/gmarik/simple-backend-example/blob/master/app/views/backend/resource/_index.html.haml
这就是我现在所拥有的。有人可以看看它并给我一些提示。谢谢。
我最怀疑这句话:
%tr[resource]{odd_or_even}
我认为它可能是这样的:
<tr> <% @resource{odd_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> <% @resource{odd_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 %>
答案 0 :(得分: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
的问题。如果您仍然坚持这一点,请添加错误消息。