rails3 link_to: с атрибутом? - PullRequest
       10

rails3 link_to: с атрибутом?

2 голосов
/ 24 марта 2010

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

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

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

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

спасибо!

Ответы [ 3 ]

2 голосов
/ 11 марта 2011

Я боролся с этим сегодня, и через некоторое время я нашел небольшой взлом в 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, но применять его для прототипа не должно быть затруднительно

1 голос
/ 24 июня 2010

Хотя есть способ обойти это.

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

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

(перенесено: с во вторую часть и сделано это «с данными»)

и добавить это внизу:

<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>

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


Для чего-то лучшего, чем этот однострочный: http://gist.github.com/451508

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

1 голос
/ 24 марта 2010

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

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

...