Где я могу положить этот JQuery в приложении рельсы - PullRequest
0 голосов
/ 19 сентября 2010

У меня есть этот кусок в jQuery, и в настоящее время он живет в моем index.html.erb, и он работает хорошо.У меня есть много подобных фрагментов, которые я хочу переместить из представлений в другой файл или файлы, чтобы очистить их.Вот мой фрагмент

    $("#request_artist").autocomplete({
        source: function(req, add){
            $.getJSON('<%= ajax_path("artistName") %>', req, function(data) {
      var suggestions = data.suggestions;
                add(suggestions);
            });
        },
    });

Проблема в том, что вызов getJson выше, я использую помощник rails, чтобы дать мне путь к местоположению, и когда я добавляю этот код в application.js, происходит сбой, посколькузнать, что это такое.Таким образом, мой вопрос был бы, есть ли место, чтобы поместить этот код и очистить мой index.html.erb

Ответы [ 2 ]

1 голос
/ 20 сентября 2010

Что я делаю, чтобы решить ваш фрагмент:

$("#request_artist").autocomplete({
    source: function(req, add){
        $.getJSON('<%= ajax_path("artistName") %>', req, function(data) {
          var suggestions = data.suggestions;
          add(suggestions);
        });
    },
});

Я бы позаботился о том, чтобы элемент с идентификатором request_artist также имел атрибут data-url, правильно установленный на ajax_path("artist_name"). Вы убедитесь, что этот атрибут правильно заполнен в представлении.

Внутри вашего javascript больше нет рубина, он может просто использовать настройку атрибута data-url.

var url = $(this).attr('data-url');

Я не совсем уверен, как интегрировать это в код автозаполнения. Но я предполагаю, что это будет работать:

$("#request_artist").autocomplete({
    source: function(req, add){
        $.getJSON($(this).attr('data-url'), req, function(data) {
          var suggestions = data.suggestions;
            add(suggestions);
        });
    },
});
1 голос
/ 19 сентября 2010

В вашем index.html.rb:

<script type="text/javascript">
    var artistNameUrl = '<%= ajax_path("artistName") %>';
</script>

И в отдельном js-файле:

$('#request_artist').autocomplete({
    source: function(req, add) {
        $.getJSON(artistNameUrl, req, function(data) {
            var suggestions = data.suggestions;
            add(suggestions);
        });
    }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...