Не могу получить рельсы current_page? метод для работы с GET и POST
Учитывая, что у меня есть следующие маршруты, определенные в routs.rb
get "signup" => "users#new"
post "signup" => "users#create"
и следующее условие в моем представлении Erb
<%if current_page?(login_path) or current_page?(signup_path)%>
<p> NOW YOU'RE IN</p>
<% end %>
Как мне получить и GET, и POST путь, который будет распознан current_page? Теперь, когда пользователь находится в #create, тег p не отображается. Я предполагаю, что это потому, что маршрут определен / регистрация как получение для пользователей #new, а публикация - это совсем другое.
Я пробовал следующее, но это не похоже на работу
<%if current_page?(login_path) or current_page?(signup_path) or current_page?(controller: "users", action: "create")%>
<p> NOW YOU'RE IN</p>
<% end %>
Изменить. Причина, по которой у меня есть сообщение, заключается в том, что если в форме регистрации есть ошибка, она будет перенаправлена обратно на страницу регистрации, но на этот раз по какой-то причине действие больше не новое, но создайте
1 ответ
current_page?
всегда будет возвращать false по запросу POST.
Из документации:
Допустим, мы находимся в действии http://www.example.com/products с методом POST в случае недопустимого продукта.
current_page?(controller: 'product', action: 'index')
# => false
Возможные обходные пути:
if controller.controller_name == "users" && controller.action_name == "create"
или же
if request.path == "/signup"