Help on formatting some HAML

I wondered if anyone could help me with turning the following in ERB
into HAML. I’m VERY new with HAML:


<%= link_to "New Order", new_order_path, :remote => true %>

Today's Activity


    <% @orders.each do |order| %>
  • <%= "#{leading_zeros order.id}" %> <%= link_to "#{order.name}", order, :remote => true %>
  • <%= link_to 'Delete', order, :confirm => 'Are you sure?', :method => :delete %>
  • <%= distance_of_time_in_words_to_now(order.created_at, :include_seconds => true) %> ago
  • <% end %>
Pagination goes here


I have tried it a few different ways to convert this to HAML, but I’m
messing it up on this secion (which is the meat of the document):


    <% @orders.each do |order| %>
  • <%= "#{leading_zeros order.id}" %> <%= link_to "#{order.name}", order, :remote => true %>
  • <%= link_to 'Delete', order, :confirm => 'Are you sure?', :method => :delete %>
  • <%= distance_of_time_in_words_to_now(order.created_at, :include_seconds => true) %> ago
  • <% end %>

I have it in HAML as:


%ul= @orders.each do |order|
%li
%span.pull-2.box= “#{leading_zeros order.id}”
= link_to “#{order.name}”, order, :remote => true
%span.rightside= link_to ‘Delete’, order, :confirm => ‘Are you sure?’,
:method => :delete
%li.time_space
%span.quiet.small.time=
{distance_of_time_in_words_to_now(order.created_at, :include_seconds =>
true)} ago
= end


I’m not sure how to correct this. Any help on formatting the ruby code
would be greatly appreciated. That’s where it seems to fail on me. I
have multiple spans on the same line in ERB. Should I do each span on
its own line?

Matt R. wrote:

I wondered if anyone could help me with turning the following in ERB
into HAML.

Do you mean ERb and Haml? :slight_smile:

I’m VERY new with HAML:

Run it through html2haml and see what you get. Note, however, that it
will usually produce

%span
= content

where you generally want

%span= content

Other than that, it’s great to help you get started.

[…]

I have tried it a few different ways to convert this to HAML, but I’m
messing it up on this secion (which is the meat of the document):


    <% @orders.each do |order| %>
  • <%= "#{leading_zeros order.id}" %> <%= link_to "#{order.name}", order, :remote => true %>
  • <%= link_to 'Delete', order, :confirm => 'Are you sure?', :method => :delete %>
  • <%= distance_of_time_in_words_to_now(order.created_at, :include_seconds => true) %> ago
  • <% end %>

----

I have it in HAML as:


%ul= @orders.each do |order|
%li
%span.pull-2.box= “#{leading_zeros order.id}”
= link_to “#{order.name}”, order, :remote => true
%span.rightside= link_to ‘Delete’, order, :confirm => ‘Are you sure?’,
:method => :delete
%li.time_space
%span.quiet.small.time=
{distance_of_time_in_words_to_now(order.created_at, :include_seconds =>
true)} ago
= end

That’s not even close to right. You need to learn about the use of -
instead of = in Haml. Reread the language reference.


I’m not sure how to correct this. Any help on formatting the ruby code
would be greatly appreciated. That’s where it seems to fail on me. I
have multiple spans on the same line in ERB. Should I do each span on
its own line?

Yes. Haml has no notion of multiple elements on one line. If white
space is an issue, you can use Haml’s < and > modifiers – or include
bits of HTML or ERb if you really need to (it is occasionally
necessary to do so).

Best,

Marnen Laibow-Koser
http://www.marnen.org
[email protected]

Marnen Laibow-Koser wrote:

Run it through html2haml and see what you get. Note, however, that it
will usually produce

%span
= content

where you generally want

%span= content

Other than that, it’s great to help you get started.

PERFECT! Thanks Marnen!