Я работаю с Ruby на рельсах 2.3.4 и мне нужна ссылка, которая выполняет действие при нажатии.
Соответствующая часть файлаways.rb выглядит следующим образом:
map.search_filter_relevance "/anuncios/buscar", :controller => 'announcements', :action => 'search_filter_relevance'
Мой вид (это индексная страница модели) выглядит следующим образом:
<%= link_to 'MÁS RELEVANTES', search_filter_relevance_path %>
И мой контроллер выглядит так:
def search_filter_relevance
raise params.inspect
unless params[:announcements].nil? or params[:announcements].empty?
@announcements = params[:announcements].order_by_featured
end
end
Проблема в том, что при нажатии на ссылку я получаю сообщение об ошибке из-за некоторого нулевого значения в действии Показать! Я вообще не получаю доступ к этому действию ... зачем его выполнять?
EDIT:
Вот вывод маршрутов:
search_filter_relevance_announcements GET /anuncios/search_filter_relevance(.:format) {:controller=>"announcements", :action=>"search_filter_relevance"}
announcements GET /anuncios(.:format) {:controller=>"announcements", :action=>"index"}
POST /anuncios(.:format) {:controller=>"announcements", :action=>"create"}
new_announcement GET /anuncios/new(.:format) {:controller=>"announcements", :action=>"new"}
edit_announcement GET /anuncios/:id/edit(.:format) {:controller=>"announcements", :action=>"edit"}
announcement GET /anuncios/:id(.:format) {:controller=>"announcements", :action=>"show"}
PUT /anuncios/:id(.:format) {:controller=>"announcements", :action=>"update"}
DELETE /anuncios/:id(.:format) {:controller=>"announcements", :action=>"destroy"}
search /anuncios/buscar {:controller=>"announcements", :action=>"search"}
power_search /anuncios/buscar {:controller=>"announcements", :action=>"power_search"}