Оговорка о статусе Rails? Link_to_function?
Каков статус link_to_function
помощника Javascript в Rails? Я прочитал, в том числе в qaru.site/info/125639/..., что он устарел в Rails 3.0, а затем не обновлен, а затем устарел в 3.2.4. Это что-то, от чего я могу зависеть и учить студентов? Я просто прочитал примечания к выпуску (из поиска) для Rails 3.2.8:
Отменит устаревание кнопок button_to_function и link_to_function. Рафаэль Мендонса Франса
Где это сейчас?
Ответы
Ответ 1
link_to_function
НЕ устарел в ветке 3-2-stable
, и в будущем он не будет устаревшим в 3-2-stable
. Но он IS обесцвечен в текущей ведущей ветке и будет устаревать в Rails 4.0 при его выпуске. Поэтому я думаю, что он будет удален из кода rails в 4.1.
Таким образом, вы можете научить студентов делать это (из рельсов 4 журнала изменений):
Мы рекомендуем использовать ненавязчивый 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"
Ответ 2
Это мое решение этой проблемы:
в 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, хотя