Ошибка маршрутов Rails

Я следую Ruby on Rails Tutorial 2nd Edition Майкла Хартла и имею достигли раздела входа/выхода из книги.

Пока я могу создать нового пользователя (или, в моем случае, домовладельца) и войти в систему с новыми учетными данными. У меня проблема при выходе. Я нажимаю «выйти» и получаю сообщение об ошибке маршрута:

Маршрут не соответствует [GET] "/signout"

Ниже приведены фрагменты кода. Любая помощь будет очень признательна!

вывод рейк-маршрутов

landlords GET    /landlords(.:format)           landlords#index
               POST   /landlords(.:format)           landlords#create
  new_landlord GET    /landlords/new(.:format)       landlords#new
 edit_landlord GET    /landlords/:id/edit(.:format)  landlords#edit
      landlord GET    /landlords/:id(.:format)       landlords#show
               PUT    /landlords/:id(.:format)       landlords#update
               DELETE /landlords/:id(.:format)       landlords#destroy
    properties GET    /properties(.:format)          properties#index
               POST   /properties(.:format)          properties#create
  new_property GET    /properties/new(.:format)      properties#new
 edit_property GET    /properties/:id/edit(.:format) properties#edit
      property GET    /properties/:id(.:format)      properties#show
               PUT    /properties/:id(.:format)      properties#update
               DELETE /properties/:id(.:format)      properties#destroy
      sessions POST   /sessions(.:format)            sessions#create
   new_session GET    /sessions/new(.:format)        sessions#new
       session DELETE /sessions/:id(.:format)        sessions#destroy
          root        /                              content_pages#home
content_pages_home GET    /content_pages/home(.:format)  content_pages#home
          help        /help(.:format)                content_pages#help
     questions        /questions(.:format)           content_pages#questions
        signup        /signup(.:format)              landlords#new
        signin        /signin(.:format)              sessions#new
       signout DELETE /signout(.:format)             sessions#destroy

файл route.rb

  resources :landlords
  resources :properties
  resources :sessions, only: [:new, :create, :destroy]

  root :to => 'content_pages#home'

  get "content_pages/home"

  match '/help', to: 'content_pages#help'
  match '/questions', to: 'content_pages#questions'
  match '/signup', to: 'landlords#new'
  match '/signin', to: 'sessions#new'
  match '/signout', to: 'sessions#destroy', via: :delete

ссылка на выход

<%= link_to "Signout", signout_path, method: "delete" %>

контроллер сессий

def destroy
  sign_out
  redirect_to root_path
end

person Tony Staunton    schedule 21.10.2012    source источник
comment
У вас есть метод sign_out в помощнике сеансов? Посмотрите листинг 8.30 в книге/на веб-сайте. Его ищет метод destroy контроллера.   -  person Bert    schedule 21.10.2012
comment
Да, у меня есть метод выхода в помощнике сеанса 'def sign_out self.current_landlord = nil cookies.delete(:remember_token) end'   -  person Tony Staunton    schedule 22.10.2012
comment
Эй, @TonyStaunton, тебе помог ответ? У меня все еще та же проблема.   -  person n_x_l    schedule 28.10.2012


Ответы (1)


Параметр via: в следующем коде ограничивает запрос методом удаления:

match '/signout', to: 'sessions#destroy', via: :delete

Вам нужно будет сделать тот, который работает с методом get

Ознакомьтесь с руководством по маршрутизации в Rails.

person Bert    schedule 21.10.2012