Как правильно настроить маршруты при создании нового представления в Ruby on Rails? - PullRequest
1 голос
/ 26 мая 2010

Я создал новое действие под названием «спросил». ask.haml находится во взглядах / вопросах, как и должно быть. Я также добавил

  def asked
    respond_to do |format|
      format.html 
      format.xml  { render :xml => @questions }
    end
  end

контроллеру вопросов для этого действия.

Моя проблема в том, что когда я попал на URL http://localhost:3000/questions/asked,, я получаю эту ошибку:

ActiveRecord::RecordNotFound in QuestionsController#show

Couldn't find Question with ID=asked

Итак, я прогуглил это и обнаружил, что мне нужно изменить способ маршрутизации вещей.

Я пытался: map.connect ':controller/asked', :action => 'asked' и map.resources :questions, :collection => {:asked => :get}, но безрезультатно.

Очевидно, я не до конца понимаю, как работает рельсовое отображение, но если бы кто-нибудь дал мне знать, что происходит, я бы очень оценил это!

1 Ответ

1 голос
/ 26 мая 2010

Маршрутизация Rails работает путем выбора маршрута first , который соответствует запрошенному URL.

Из вашего описания кажется, что вы положили свои map.connect утверждения в конец вашего routes.rb. Вы должны поместить его перед map.resources :questions, так как в противном случае URL /questions/asked соответствует map.resources как действие show.

...