sintax rails link_to form escape comment ruby-on-rails refactoring haml view-helpers

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