Estaba jugando con Rails 3 beta y noté que link_to_function ya no está. Supongo que hay un método alternativo para lograr el mismo resultado (¿evento onclick?), Pero me preguntaba si hay una forma más de hacerlo de Rails-3. TIA.¿A dónde desapareció link_to_function en Rails 3?
Respuesta
Rails 3 parece haber acabado con Prototype Helper a favor de un enfoque agnóstico menos obtrusivo/biblioteca JS. El objetivo es eliminar todo el javascript en línea generado por Rails. Prototype Helper generó casi todo el javascript.
Ahora, cualquiera de las variantes no remotas de helpers generará el javascript adecuado para una llamada remota en la biblioteca JS que elijas simplemente con la opción: remote => true.
Desafortunadamente, esto no es válido para los métodos de función x. Por el momento, están los prototype legacy helpers que ya no son una parte fundamental de Rails.
También podría utilizar la llamada como se define en ActionView :: Helpers :: PrototypeHelper :: JavascriptGenerator :: GeneratorMethods para proporcionar el código de JavaScript a: onclick como una opción html para link_to, pero eso no es exactamente bonito.
Ejemplos:
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 ....
O algo por el estilo. Tengo problemas para encontrar documentación oficial para respaldar mis reclamos. Entonces, el release notes tendrá que hacer por ahora.
Antes de que pueda usarlo, deberá incluir los archivos fuente js adecuados. Asegúrese de que está cargando prototype.js y rails.js, o la biblioteca y el controlador para el marco JS de su elección en su lugar.
Recuerde, Rails 3 está en versión beta ahora. Pero eso no significa que esté hecho. Sinceramente, no tengo idea de cómo se reemplazará link_to_function. Va en contra del ideal de JavaScript no intrusivo.
para responder a mi propia pregunta, parece que esto funciona y es suficiente para lo que necesito:
link_to "name", nil, :onlick => "alert('Hello, world!')"
el problema con esa solución es que es totalmente molesto. Te recomiendo que juegues con jquery o prototype + low pro. –
No creo que esto sea "totalmente" molesto, siempre y cuando solo llame a un controlador desde onclick = "" en lugar de implementarlo allí mismo. Todo el material de UJS aún no está maduro e incluso sus creadores no están de acuerdo con lo que se recomienda (ver http://weblog.jamisbuck.org/2010/3/2/unobtrusive-yet-explicit incluyendo comentarios). – Matt
link_to_remote se puede hacer como esto
link_to "objetivo",: distancia => true
y hacer un post ajax/get tiene
link_to "objetivo", {: controller => controlador,: action => método,}: distancia => true
En los carriles 2 era como este link_to_remote
"target ", url => {: controlador => controlador,: action => método,}: retirado => true
- 1. ¿Dónde está asset_host Rails 3?
- 2. Dónde configurar Rails 3 cache_store?
- 3. ¿A dónde deberían ir las bibliotecas en Rails 3?
- 4. Dónde/cómo codificar Constantes en Rails 3 Aplicación
- 5. Dónde poner las variables globales en Rails 3
- 6. dónde poner reglas de formato de tiempo en Rails 3?
- 7. Actualización de Rails 3 a Rails 3.1
- 8. Rails 3: guides.rubyonrails.org en PDF?
- 9. ¿Dónde deben almacenarse los validadores personalizados de Rails 3?
- 10. Rails 3 en dreamhost?
- 11. Rails 3 - entorno establecido
- 12. perdí nginx.pid, desapareció
- 13. mono de parches en Rails 3
- 14. Rails 3: HTTP_USER_AGENT
- 15. Rails 3 tipos de datos?
- 16. Vuelve a utilizar Rails 2.3.5 de Rails 3
- 17. Marco A/B para Rails 3?
- 18. Contacto funcionalidad en Rails 3
- 19. paginará Rails 3 por Página
- 20. Modelos autorreferenciados en Rails 3
- 21. Rails 3, pasando variable local a parcial
- 22. Hierarchic MVC en Rails 3?
- 23. ¿Registrador personalizado en Rails 3?
- 24. ¿Cuándo actualizarás tu aplicación a Rails 3?
- 25. Traducir JSON en Rails 3
- 26. Eliminar ActiveRecord en Rails 3
- 27. Enviando boletines en Rails 3
- 28. Multiline I18n en Rails 3
- 29. Rails 3 Server en EC2
- 30. Atributos anidados en Rails 3
Para cualquier persona que encuentre esto a través de Google, hay que señalar que link_to_function es a la vez en Rai ls 3 y NO desaprobado. Ver https: // github.com/rails/rails/commit/d69e561 O la respuesta aquí: http://stackoverflow.com/questions/5063246/rails-3-status-of-link-to-function-method – noel