2016-07-12 3 views
0

У меня возникли проблемы с попыткой отправить запрос AJAX отдельному контроллеру на мой взгляд.Нет совпадений маршрутов [POST] "/"

Моя форма для запроса AJAX выглядит так: Я также пробовал sites_search_results_index_path, который мой файл маршрутов говорит о правильном маршруте.

Вид:

<div class="pull-left col-md-5"> 
    <%= form_tag url: sites_search_results, remote: true do %> 
    <div class="input-group"> 
     <%= content_tag :span, class: "input-group-btn" do %> 

     <%= button_tag type: "button", class: "btn btn-default dropdown-toggle", data: { toggle: "dropdown" } do %> 
      <%= content_tag :span, "", class: "caret" %> 
     <% end %> 

     <%= content_tag :ul, class: "dropdown-menu" do %> 
      <li class="btn btn-default">Domain</li> 
      <li class="btn btn-default">CLW</li> 
     <% end %> 
     <% end %> 

     <%= hidden_field_tag "search_by", "Domain" %> 
     <%= content_tag :span, class: "input-group-addon", id: "search_view" do %> 
     Filter 
     <% end %> 

     <%= text_field_tag "search_for", "", :class => "form-control" %> 
     <%= content_tag :span, class: "input-group-btn" do %> 
     <%= button_tag "Search", class: "btn btn-default" %> 
     <% end %> 

    </div> 
    <% end %> 
</div> 

Контроллер:

class SitesSearchResultsController < ApplicationController 

    def index 

    field = "Domain" 

    @results = Domain.where() 

    respond_to do |format| 
     format.js # do ajax action 
    end 
    end 

end 

Маршруты:

resource :sites_search_results do 
    post 'index' 
end 
# also tried with no result: 
#post "sites_search_results/index" 

rake routes имеет:

sites_search_results POST /sites_search_results/index(.:format)   sites_search_results#index 
        POST /sites_search_results(.:format)     sites_search_results#create 

Результатом этого является:

undefined local variable or method `sites_search_results' 

Любая идея, что вызвало бы это? Я видел, что у других людей есть эта проблема, но у меня уже установлен корневой путь, чтобы перейти на страницу состояния. И я не вижу ничего, что пыталось бы опубликовать в root. Дайте мне знать, если что-то еще нужно, чтобы помочь. И спасибо заранее!

+0

Не могли бы вы показать нам соответствующие строки из 'грабли routes' и соответствующие линии на ваших журналов, когда вы показали, что это ошибка? – Leito

+0

@Leito просто добавил его – KJS

ответ

0

кажется form_tag URL должен быть:

<%= form_tag url: sites_search_results_path, remote: true do %> 

Или

<%= form_tag url: sites_search_results_url, remote: true do %> 

Run 'рейк маршруты' из командной строки, и если у вас есть 'sites_search_results' или 'sites_search_results_index'. Я догадываюсь о первом.

Кроме того, попробуйте изменить определение маршрута из:

resource :sites_search_results do 
    post 'index' 
end 

Чтобы просто

post 'sites_search_results' => sites_search_results#index 

Наконец, вам нужно использовать POST? Методы индексов обычно являются GET, и в этом случае вы должны отправить сообщение в get.

+0

Когда я запустил его из командной строки я получил: 'sites_search_results POST /sites_search_results/index(.:format) sites_search_results # index' ' /sites_search_results(.:format POST) sites_search_results # create' И затем, когда я загружаю страницу, она говорит: неопределенная локальная переменная или метод 'sites_search_results ' после обновления URL-адреса – KJS

+0

Это должно быть« sites_search_results_path », а не« sites_search_results ». – andrunix

+0

Затем я вернусь к «Нет совпадений маршрута [POST]»/«' – KJS

0

Вы должны дать метод внутри form_tag как это: -

<%= form_tag url: sites_search_results,:method=>'post', remote: true do %> 
+0

К сожалению, у меня такая же проблема. 'Нет совпадений маршрутов [POST]"/"' Любая другая идея, почему это может быть? – KJS