Вопрос

мне интересно, удален ли атрибут :with из rails3, поскольку я ничего не могу найти в rails3 api - http://rails3api.s3.amazonaws.com

у кого-нибудь есть подсказка или как использовать параметр :with для отправки данных с помощью link_to

нерабочий пример:

= link_to "Foo", {:action => "filter", :filter => "filter1",:with => "'test='+$('search').value"}, :remote => true, :class => "trash unselected", :id => "boo"

Спасибо!

Это было полезно?

Решение

Это противоречит принципу ненавязчивого javascript, и именно поэтому он был удален.Попробуйте посмотреть выпуск railscast на эту тему здесь: http://railscasts.com/episodes/205-unobtrusive-javascript

Вам следует попробовать другой способ сделать это.

Другие советы

Я боролся с этим сегодня, и через некоторое время я придумал небольшой взлом в rails.js.В методе handleRemote я изменил это:

} else {
    method = element.attr('data-method');
    url = element.attr('href');
    data = null;
}

к этому:

} else {
    method = element.attr('data-method');
    url = element.attr('href');
    data = eval(element.attr('data-with'));
}

Благодаря этому теперь я могу использовать link_to: remote следующим образом:

<%= link_to "link", some_path, :remote => true, 'data-with' => "'address=' + $j('#office_address').val();" %>

ПРИМЕЧАНИЕ:это допустимо только в том случае, если вы используете jquery, но применить это для prototype не должно составить труда

Однако есть способ обойти это.

Используйте это в представлении в качестве ориентира:

link_to "Foo", {:action => "filter", :filter => "filter1"}, {:remote => true, :class => "trash unselected", :id => "boo", 'data-with' => "'&test='+$('search').value"}

(переместил :with во вторую часть и сделал ее "data-with")

и добавьте это в самый низ:

<script type="text/javascript" charset="utf-8">
  $$('a[data-remote=true]').each(function(a){
    a.onclick = function(){a.setAttribute('href', a.getAttribute('href') + eval(a.getAttribute('data-with')))};
  });
</script>

конечно, вам нужно будет загрузить прототип (находится в javascripts по умолчанию приложения rails).


За что-то лучшее, чем этот однострочник: http://gist.github.com/451508

Используя суть , с которой вам не нужно начинать :с с & или ?

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top