Pergunta

Eu estava apenas brincando com o Rails 3 beta e notei que o link_to_function já se foi. Presumo que exista um método alternativo de alcançar o mesmo resultado (evento OnClick?), Mas eu estava me perguntando se há uma maneira mais Rails-3'y de fazê-lo. Tia.

Foi útil?

Solução

Os Rails 3 parecem ter acabado com o Prototype Helper em favor de uma abordagem agnóstica menos invasiva/JS da Biblioteca. O objetivo é eliminar todos os JavaScript em linha gerados pelos Rails. O Prototype Helper gerou praticamente todo o JavaScript.

Agora, qualquer uma das variantes não remotas de ajudantes gerará o JavaScript adequado para uma chamada remota na sua biblioteca JS de escolha apenas fornecendo a opção: remote => true.

Infelizmente, isso não é verdadeiro para os métodos X funcionarem. Por enquanto, existem o Protótipo ajudantes legados que não são mais uma parte central dos trilhos.

Você também pode usar a chamada conforme definida no ActionView :: HELHERS :: PrototypeHelper :: javascriptGenerator :: generatormethods para fornecer código JavaScript para: OnClick como uma html_option para link_to, mas isso não é exatamente bonito.

Exemplos:

Rails < 3                      | Rails 3
link_to_remote "target", url   | link_to "target", url, :remote => true
form_remote_for @post          | form_for @post, :remote => true

etc ....

Ou algo para esse efeito. Estou tendo problemas para encontrar documentação oficial para fazer backup de minhas reivindicações. Então o Notas de liberação terá que fazer por enquanto.

Antes de usá -lo, você precisará incluir os arquivos de origem JS adequados. Certifique -se de estar carregando prototype.js e trilhos.js, ou a biblioteca e o driver para a estrutura de escolha JS em seu lugar.

Lembre -se, o Rails 3 está na versão beta agora. Mas isso não significa que está feito. Sinceramente, não tenho idéia de como link_to_function será substituído. Vai contra o ideal de JavaScript discreto.

Outras dicas

Para responder à minha própria pergunta, parece que isso funciona e é suficiente para o que eu preciso:

link_to "name", nil, :onlick => "alert('Hello, world!')"

link_to_remote pode ser feito assim

link_to "Target" ,: remoto => true

e fazer uma postagem de Ajax/obter você tem

link_to "Target", {: controlador => controlador ,: ação => método,} ,: remoto => true

Em Rails 2, era assim

link_to_remote "Target" ,: url => {: controlador => controlador ,: ação => método,} ,: remoto => true

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