ruby-on-rails - form - link_to do rails
Rails: ¿Es posible escribir ayudantes de vista con sintaxis HAML? (3)
De la reference :
def render_haml(code)
engine = Haml::Engine.new(code)
engine.render
end
Esto inicia un nuevo motor Haml y lo hace.
Durante la refactorización sería bastante útil simplemente copiar parte de la plantilla HAML y pegarla en el código del ayudante. Actualmente, en tales casos 1) Tengo que reescribir esa parte de la vista desde cero 2) Tengo que usar esa sintaxis detallada como content_tag o haml_tag.
Sé que es posible definir parciales con HAML systax que servirán de ayuda. Aunque 1) para mí no es importante crear un archivo separado para cada pequeña función pequeña 2) la sintaxis de invocación para parcial es bastante detallada.
Lo ideal sería que mi clase de * _helper se vea así:
- def some_helper(*its_args)
.some_class
= some_ruby_expression
%some_tag#some_id
- another_expression do
etc
o al menos así:
define_haml_helper :some_helper, [:arg1, :arg2], %{
.some_class
= some_ruby_expression
%some_tag#some_id
- another_expression do
etc
}
¿Hay algún complemento que solucione mi problema?
Alternativamente, tal vez pueda describir cómo refactoriza fragmentos de HAML a elementos reutilizables (helpers / functions / partials / builders / etc).
Haml ahora tiene un método capture_haml
que puedes usar para lograr esto.
def some_helper
capture_haml do
.some_class
= yield
#some-code-after
end
end
some_helper do
%h1 Hello World
end
=> <div class="some_class">
<h1>Hello World</h1>
</div>
<div id="some-code-after"></div>
Aquí hay un enlace con más información sobre capture_haml
: http://haml.info/docs/yardoc/Haml/Helpers.html#capture_haml-instance_method
Si todo lo que buscas es un método para pequeños fragmentos reutilizables, ¿qué hay de los parciales con variables locales? http://guides.rubyonrails.org/layouts_and_rendering.html#using-partials