toto icon indicating copy to clipboard operation
toto copied to clipboard

render partials with haml

Open peterberkenbosch opened this issue 14 years ago • 3 comments

I would love to use partials within haml. However, when I try to render a partial, the to_html method fails. What do I need to add to the render call?

=render :partial=> "sidebar"

give's me an ArgumentError, wrong number of arguments (1 for 2)

/Library/Ruby/Gems/1.8/gems/toto-0.4.1/lib/toto.rb: in to_html

  1. def self.env= env
  2. ENV['RACK_ENV'] = env
  3. end 29.
  4. module Template
  5. def to_html page, config, &blk
  6. path = ([:layout, :repo].include?(page) ? Paths[:templates] : Paths[:pages])
  7. config[:to_html].call(path, page, binding)...
  8. end 35.
  9. def markdown text
  10. if (options = @config[:markdown])
  11. Markdown.new(text.to_s.strip, *(options.eql?(true) ? [] : options)).to_html
  12. else
  13. text.strip

peterberkenbosch avatar Feb 25 '10 19:02 peterberkenbosch

I'm also having this problem, using a stock Toto install.

After doing some more tests, I managed to get things working by running <%= rende :partial => 'sidebar', :html %> - but the problem is, my partial has to be under pages/, and it renders out the entire thing(layout and all). I'm pretty new to Ruby, so I'm not sure what I've done wrong here.

girasquid avatar Mar 08 '10 01:03 girasquid

I too had this problem.

I was able to "fix" it using this monkey patch:

module Toto
  class Site
    class Context
      def to_html_without_layout(page)
        to_html page, @config
      end
    end
  end
end

And this snip in my template:

<%= render 'sidebar', :html_without_layout %>

adscott avatar Jan 20 '12 03:01 adscott

@adscott thx a lot!

afknapping avatar Feb 11 '12 21:02 afknapping