«button_to» и «link_to» перенаправляют с помощью devise - PullRequest
1 голос
/ 10 ноября 2011

У меня простое применение на рельсах.Мне нужно опубликовать статью.В моем приложении есть авторизация.В posts_controller.rb before_filter :authenticate_user!, :except => [:show, :index].На индексной странице было link_to и button_to с new_post_path.Если я не вошел в систему и не попробовал link_to, я перенаправился на страницу /sign_in.И если я нажимаю button_to, я перенаправляю на страницу /posts/new, и я вижу ошибку маршрутизации No route matches [POST] "/posts/new".Скажите пожалуйста, что не так?

1 Ответ

1 голос
/ 10 ноября 2011

Похоже, ваше приложение ведет себя точно так, как ожидалось.У вас есть before_filter, указывающий, что пользователь должен пройти аутентификацию для создания нового Post.Следовательно, вы будете перенаправлены на страницу входа, когда вы попытаетесь GET /posts/new.

Если вы используете ресурсы с ресурсами, страница /posts/new будет предоставлена ​​только на GET, поэтому ваша попытка POST приводит к ошибке.

Если вы хотите, чтобы неаутентифицированные пользователи могли создавать посты, измените фильтр до

before_filter :authenticated_user!, :except => [:show, :index, :new, :create]
.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...