В моем приложении Rails ссылка на запись не работает, и я не уверен, что я могу ее исправить. В моих журналах Heroku, когда я пытаюсь SignOut из моей учетной записи пользователя, я получаю следующее сообщение об ошибке:Как я могу исправить эту ошибку маршрутизации?
ActionController :: RoutingError (нет маршрута матчей [GET] "/ SignOut"):
У меня есть следующий маршрут в моей конфигурации/routes.rb файл:
match '/signout', to: 'sessions#destroy', via: :delete
И в моем контроллере сеанса у меня есть следующий метод:
def destroy
sign_out
redirect_to root_path
end
, а затем в моем файле session_shelper.rb у меня есть последующий ING sign_out метод:
def sign_out
self.current_user = nil
cookies.delete(:remember_token)
end
Все вроде бы правильно с моей точки зрения, так что я не уверен, что вызывает ошибку или как я могу это исправить. Мое приложение размещено на Heroku, если это полезно. Спасибо!
sessions_controller.rb
class SessionsController < ApplicationController
def new
end
def create
user = User.find_by_email(params[:session][:email])
if user && user.authenticate(params[:session][:password])
sign_in user
redirect_to info_path
else
flash.now[:error] = 'Invalid email/password combination'
render 'new'
end
end
def destroy
sign_out
redirect_to root_path
end
end
<nav>
<ul class="nav pull-right">
<% if signed_in? %>
<li><%= link_to "Settings", edit_user_path(current_user) %></li>
<li class="divider"></li>
<li><%= link_to "Sign out", signout_path, method: "delete" %></li>
</ul>
<% else %>
<li><%= link_to "Sign in", signin_path %>
<% end %>
</ul>
</nav>
Хорошо, позвольте мне попробовать это решение. Большое спасибо! – user1483441
@ user1483441 какая версия рельсов вы используете ?, я отредактировал ответ, кстати. – user1455116
Это не сработало. Я все еще получаю ту же ошибку. – user1483441