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.

Foi útil?

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/

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top