Я работаю над Ruby на рельсах 2.3.4 и пытаюсь разработать функцию сортировки на странице поиска моего веб-сайта (ее URL-адрес /anuncios/buscar).
Я попытался создать «карту» для файла маршрутов:
map.search_filter_relevance "/anuncios/buscar", :controller => 'announcements', :action => 'search_filter_relevance'
Затем я написал это на виде:
<%= link_to 'MÁS RELEVANTES', search_filter_relevance_path(@announcements) %>
И, наконец, я создал метод в контроллере, как указано в строке маршрутов:
def search_filer_relevance
raise params.inspect
end
Прежде всего, поскольку я сортирую результаты поиска, я хотел бы сохранить их в их общедоступной переменной, называемой @announcements. Пожалуйста, помогите мне сделать это.
Другое дело, что при нажатии на ссылку я получаю сообщение об ошибке из-за попытки доступа к действию Show вместо search_filter_relevance, как указано в маршрутах. Почему это происходит?
EDIT:
Похоже, у меня конфликт между некоторыми строками в файле rout.rb.
Там более одной строки, которая вызывает один и тот же путь. Например:
map.search "/anuncios/buscar", :controller => 'announcements', :action => 'search'
map.power_search "/anuncios/buscar", :controller => 'announcements', :action => 'power_search'
map.search_filter_relevance "/anuncios/buscar", :controller => 'announcements', :action => 'search_filter_relevance'
Поэтому, если я нажму на ссылку «Сортировка», я буду перенаправлен на действие «Поиск» вместо «search_filter_relevance». Но если я изменю его путь на другое (например, «anuncios / buscar_2»), он выполнит действие, которое я хочу, но попросит создать для этого шаблон «buscar_2», а я не хочу делать это.
Я просто хочу иметь кнопку ссылки, по которой при нажатии таблица сортируется. Вот и все.
Есть идеи?