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!

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs