Haml rendering problem.

Hi all,

I have problem about HAML rendring

I have following small test for haml rendering

a = Coupon.first

=> #<Coupon id: 16, template_id: 1, business_id: 2, tag_line: "Tagline",
expirat
ion_date: "2009-07-21", disclaimer: "Disclaimer", estimated_value:
#<BigDecimal:
67e1f0c,'0.123E3',4(12)>, created_at: "2009-07-22 13:56:31", updated_at:
"2009-0
7-22 13:56:31", tag_line_font_style: "bold", tag_line_font_family:
"Arial", tag_
line_font_size: 22, discount: "50% ", discount_font_style: "bold",
discount_font
_family: "Arial", discount_font_size: 22, product_or_service:
"Product/Service",
product_or_service_font_style: false, product_or_service_font_family:
"Arial",
product_or_service_font_size: 22, expiration_date_font_style: false,
expiration_
date_font_family: "Arial", expiration_date_font_size: 22, text_color:
"white", b
ackground_color: "#201E9F">

if i give following to console

haml_engine = Haml::Engine.new("%h3 Avatar =image_tag( Photo.find(t.busines

s.avatar_id).public_filename(:thumb), :width =>'80px', :height =>
'80px')").rend
er(Object.new, :t => a)

IT GIVES ---->

=> "<h3>Avatar =image_tag(
Photo.find(t.business.avatar_id).public_filename(:th
umb), :width =>'80px', :height => '80px')</h3>\n"

Hi--

Hi all,

I have problem about HAML rendring

I have following small test for haml rendering

a = Coupon.first

=> #<Coupon id: 16, template_id: 1, business_id: 2, tag_line: "Tagline",
expirat
ion_date: "2009-07-21", disclaimer: "Disclaimer", estimated_value:
#<BigDecimal:
67e1f0c,'0.123E3',4(12)>, created_at: "2009-07-22 13:56:31", updated_at:
"2009-0
7-22 13:56:31", tag_line_font_style: "bold", tag_line_font_family:
"Arial", tag_
line_font_size: 22, discount: "50% ", discount_font_style: "bold",
discount_font
_family: "Arial", discount_font_size: 22, product_or_service:
"Product/Service",
product_or_service_font_style: false, product_or_service_font_family:
"Arial",
product_or_service_font_size: 22, expiration_date_font_style: false,
expiration_
date_font_family: "Arial", expiration_date_font_size: 22, text_color:
"white", b
ackground_color: "#201E9F">

if i give following to console

haml_engine = Haml::Engine.new("%h3 Avatar =image_tag( Photo.find(t.busines

s.avatar_id).public_filename(:thumb), :width =>'80px', :height =>
'80px')").rend
er(Object.new, :t => a)

IT GIVES ---->

=> "<h3>Avatar =image_tag(
Photo.find(t.business.avatar_id).public_filename(:th
umb), :width =>'80px', :height => '80px')</h3>\n"

--------------------------------------------------------------

BUT IF I GIVE

haml_engine = Haml::Engine.new("=image_tag( Photo.find(t.business.avatar_id).

public_filename(:thumb), :width =>'80px', :height =>
'80px')").render(Object.new
, :t => a)

I got following error

NoMethodError: undefined method `image_tag' for #<Object:0x6ab04a4>
       from (haml):1:in `render'
       from
c:/ruby/lib/ruby/gems/1.8/gems/haml-2.2.1/lib/haml/engine.rb:167:in
`render'
       from
c:/ruby/lib/ruby/gems/1.8/gems/haml-2.2.1/lib/haml/engine.rb:167:in
`instance_eval'
       from
c:/ruby/lib/ruby/gems/1.8/gems/haml-2.2.1/lib/haml/engine.rb:167:in
`render'
       from (irb):8
       from :0

Why the image_tag is not executing here?
How to solve this problem? Please give me solution.

I can't tell from the formatting whether your haml is correct, but the reason you aren't finding image_tag from the console is probably that you don't have the ActionView helpers included. Look up image_tag and then include the fully-qualified module for image_tag and try again. You might also try posting to the Haml Google Group (http://groups.google.com/group/haml).

Hope this helps.