什么是状态link_to_function
Rails中的Javascript帮手? 我读,包括在这个计算器的问题 ,它是在Rails的3.0过时,那么undeprecated,然后再次3.2.4弃用。 有什么事情我可以依靠和教给学生? 我只读过为Rails 3.2.8版本说明(从搜索) :
恢复button_to_function和link_to_function助手弃用。 拉斐尔·门东萨弗兰卡
哪里该站在现在?
什么是状态link_to_function
Rails中的Javascript帮手? 我读,包括在这个计算器的问题 ,它是在Rails的3.0过时,那么undeprecated,然后再次3.2.4弃用。 有什么事情我可以依靠和教给学生? 我只读过为Rails 3.2.8版本说明(从搜索) :
恢复button_to_function和link_to_function助手弃用。 拉斐尔·门东萨弗兰卡
哪里该站在现在?
link_to_function
是不是在弃用3-2-stable
分支,它不会被弃用3-2-stable
未来。 但它是 depreacated在当前的主分支,并用Rails 4.0时,它释放被弃用。 所以我想它会从Rails代码在4.1中删除。 所以,你可以教给学生做到这一点(从轨道4的changelog):
我们建议使用不引人注目的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);
}
});
})
然后你就可以在轨道做:
link_to 'Awesome Button', '#', data:{on: :click, call: 'awesome_func',args: '[1,"yeah",{b:4}]'
这似乎是他们希望我们的代码:)顺便说一下,我很喜欢link_to_function,虽然