Rails的link_to_function弃用状态?

Rails中link_to_function Javascript助手的状态是什么? 我读过,包括在这个stackoverflow问题中 ,它在Rails 3.0中被弃用,然后是不推荐的,然后在3.2.4中再次弃用。 这是我可以依赖并教导学生的东西吗? 我刚刚阅读了Rails 3.2.8的发行说明(来自搜索) :

恢复了button_to_function和link_to_function助手的弃用。 RafaelMendonçaFrança

现在这个立场在哪里?

link_to_function3-2-stable分支中不被弃用,将来不会在3-2-stable中弃用。 但它在当前的主分支中被删除,并且在它发布时将在Rails 4.0中被弃用。 所以我想它将从4.1中的rails代码中删除。 所以你可以教学生这样做(来自rails 4 changelog):

我们建议使用Unobtrusive JavaScript。 例如:

 link_to "Greeting", "#", class: "nav_link" $(function() { $('.nav_link').click(function() { // Some complex code return false; }); }); 

要么

 link_to "Greeting", '#', onclick: "alert('Hello world!'); return false", class: "nav_link" 

这是我解决这个问题的方法:

在javascript中:

 // define function to be called function awesome_func(a,b,c){ console.log(a,b,c); } //clean implementation of link_to_function $(function(){ $('[data-on][data-call][data-args]').each(function(d){ try{ $(this).on( $(this).data('on'), function(){ window[$(this).data('call')].apply(window,$(this).data('args'))}) }catch(e){ if(typeof(console) != 'undefined' && typeof(console.log === 'function')) console.log(e); } }); }) 

然后你可以在rails中做:

 link_to 'Awesome Button', '#', data:{on: :click, call: 'awesome_func',args: '[1,"yeah",{b:4}]' 

这似乎是他们希望我们编码的方式:),我喜欢link_to_function

Interesting Posts