Qual é a melhor maneira de retornar várias marcas de um ajudante Rails?
-
02-07-2019 - |
Pergunta
Eu quero criar um campo oculto e criar um link em um ajudante e depois a saída tanto para o meu erb.
<%= my_cool_helper "something", form %>
deve colocar para fora os resultados de
link_to "something", a_path
form.hidden_field "something".tableize, :value => "something"
O que seria a definição do olhar ajudante como? Os detalhes do que LINK_TO eo form.hidden_field realmente não importa. O que importa é, como faço para retornar a saída de duas chamadas diferentes.
Solução
Existem várias maneiras de fazer isso.
Lembre-se que os trilhos existentes ajudantes como link_to
, etc, apenas cadeias de saída. Você pode concatenar as cordas juntos e retornar esse (que é o que eu faço na maioria das vezes, se as coisas são simples).
EG:
link_to( "something", something_path ) + #NOTE THE PLUS FOR STRING CONCAT
form.hidden_field('something'.tableize, :value=>'something')
Se você está fazendo as coisas que são mais complicados, você poderia simplesmente colocar esse código em um parcial, e ter o seu render :partial
chamada ajudante.
Se você está fazendo coisas mais complicadas do que até mesmo isso, então você pode querer olhar para errtheblog de block_to_partial ajudante, que é muito legal
Outras dicas
Até agora o melhor que eu vim com é:
def my_cool_helper(name, form)
out = capture { link_to name, a_path }
out << capture { form.hidden_field name.tableize, value => 'something' }
end
Existe uma maneira melhor?
Se você quiser tampão outra saída que além de corda, em seguida, você pode usar concat
vez de +
.
ver isso - http://thepugautomatic.com/2013/06/helpers/