У меня есть HTML-форма, предназначенная для сброса пароля. Его метод равен PATCH
, и он должен нанести удар по update
методу PasswordResetController
. Однако при подаче он всегда делает запрос GET
, независимо от того, указан ли method
. Я могу напечатать метод = ANYTHINGHERE
, и он всегда делает запрос GET
.Рельсы с использованием метода GET, независимо от того, что указано
Моя форма проста:
<form class="group" action="<%= password_reset_url %>" method="PATCH">
<input type="hidden" name="authenticity_token" value="<%= form_authenticity_token %>">
<input type="password" class="password-login" name="new_password" placeholder="New Password">
<input type="password" class="password-login" name="new_password_verify" placeholder="New Password Confirmation">
<button class="login-button">Reset Password</button>
</form>
Мои маршруты, кажется, в порядке:
password_reset_index POST /password_reset(.:format) password_reset#create
new_password_reset GET /password_reset/new(.:format) password_reset#new
edit_password_reset GET /password_reset/:id/edit(.:format) password_reset#edit
password_reset PATCH /password_reset/:id(.:format) password_reset#update
PUT /password_reset/:id(.:format) password_reset#update
определяется как resources :password_reset, only: [:new, :create, :edit, :update]
И мой контроллер:
class PasswordResetController < ApplicationController
new, edit, create....etc.
def update
user = ...
end
end
Cr eate, new и edit все работают отлично, но при отправке формы он даже не попадает в метод обновления. Я просто получаю No route matches [GET] "/password_reset/longTokenString
. Есть идеи? Мне кажется, что я исчерпал свои возможности здесь.
Это не дубликат this question, так как строка токена правильно сгенерирована. Строка токена также используется как идентификатор в маршруте /password_reset/:id/edit
, и там тоже хорошо работает.
Заранее спасибо.
Спасибо за очень тщательный ответ. Иногда трудно увидеть лес через деревья. Я на самом деле знал это уже, но недавно сделал так много патчей AJAX, что он даже не пришел мне в голову. Иногда вы попадаете в рутину, а основные понятия выходят из окна. Время идти обновляться .... Спасибо Naresh! – yawnr
Его мое удовольствие. Рад помочь вам @yawnr. Счастливое кодирование :) –