У меня довольно странная проблема с одним из моих приложений rails. Я думаю, что, вероятно, делаю что-то действительно глупое, чего я просто не мог определить. Моя проблема в том, что мне кажется, что мне не хватает примерно половины моих путей индекса.
Например, если мой контроллер - "foos" для модели foo, у меня будет:
foos POST /foos(.:format) {:action=>"create", :controller=>"foos"}
Но нет опции GET, которая могла бы обычно выглядит так:
foos GET /foos(.:format) {:action=>"index", :controller=>"foos"}
Ниже я покажу вам свой код, чтобы помочь мне восстановить мои пропущенные маршруты индекса.
routes.rb:
resource :announcements, :controller => "announcements" do
resources :comments
member do
post 'vote'
end
end
маршруты для части объявлений:
announcements POST /announcements(.:format) {:action=>"create", :controller=>"announcements"}
new_announcements GET /announcements/new(.:format) {:action=>"new", :controller=>"announcements"}
edit_announcements GET /announcements/edit(.:format) {:action=>"edit", :controller=>"announcements"}
GET /announcements(.:format) {:action=>"show", :controller=>"announcements"}
PUT /announcements(.:format) {:action=>"update", :controller=>"announcements"}
DELETE /announcements(.:format) {:action=>"destroy", :controller=>"announcements"}
Как вы можете видеть там нет get / index. В моем контроллере определен метод простого индекса ...
def index
@announcements = Announcement.all
respond_to do |format|
format.html
format.xml { render :xml => @announcements }
end
end
Я действительно не понимаю, почему у меня нет этого пути индекса. Это происходит и на нескольких других контроллерах. Приветствуется любая помощь.
Изменить: в консоли app.announcements_path
возвращает ошибку отсутствия метода в дополнение к другим, у которых отсутствуют пути индекса.