EDIT: !!! OUTDATED !!! Lire Jason's répondre ci-dessous!
Qu'est-ce que vous essayez fonctionne dans rails
! Sinatra
n'a pas de méthode partial
. Une mise en œuvre de partial
sur Sinatra
ressemble this (source gist) de github:
module Haml
module Helpers
def partial(template, *args)
template_array = template.to_s.split('/')
template = template_array[0..-2].join('/') + "/_#{template_array[-1]}"
options = args.last.is_a?(Hash) ? args.pop : {}
options.merge!(:layout => false)
if collection = options.delete(:collection) then
collection.inject([]) do |buffer, member|
buffer << haml(:"#{template}", options.merge(:layout =>
false, :locals => {template_array[-1].to_sym => member}))
end.join("\n")
else
haml(:"#{template}", options)
end
end
end
end
Y compris cette méthode, vous pouvez appeler partial
dans vos .haml
fichiers, comme
= partial("partial_name")
Si vous voulez render
une vue dans une autre la syntaxe de vue est
= render(:haml,:'rel_path_to_view',:locals => {:optional => option})
Notez les différences de syntaxe entre les deux n rails
et sinatra
concernant la méthode render
!
Si vous voulez plus de réponses que je suggère d'ajouter 'ruby' aux balises – kfl62