проблема с получением маршрута для работы в Rails - PullRequest
1 голос
/ 08 марта 2012

В моем routes.rb есть:

resources :resources
match "/resources/:category" => 'resources#index', :as => :resources

В моем index.html.erb есть следующее: L

<% @categories.each do |category| %>
  <li class="active">
    <%= link_to category.name, resour_path(:category=>category.name.parameterize), :class => "large", remote => true %>
  </li>
<% end %>

Я хочу отправитьиндексное действие ResourcesController, потому что я хочу отображать различные элементы на странице, как в фильтре.

Ссылки в настоящее время дают ошибку, поскольку они вызывают действие show и не переходят к действию index.1011 *

Как мне заставить их подчиниться действию индекса контроллера маршрутов?

1 Ответ

3 голосов
/ 08 марта 2012

Линия match "/resources/:category" никогда не достигается при переходе по маршруту.Путь /resources/some-category соответствует resources :resources, а some-category считается идентификатором для действия show.

Опция 1

Переключите линии так, чтобы линия matchсначала сопоставляется.

match "/resources/:category" => 'resources#index', :as => :resources
resources :resources

Вариант 2

Превратить

resources :resources

в

resources :resources, :except => :show

Ссылки

Как описанов http://guides.rubyonrails.org/routing.html:

Маршруты Rails совпадают в указанном порядке, поэтому, если у вас есть ресурсы: фотографии выше get 'photos / poll', маршрут действия показа для строки ресурсов будетсовпал до получения строки.Чтобы это исправить, переместите строку get над строкой ресурсов так, чтобы она соответствовала первой.

...