У меня есть форма, в которой я хочу отредактировать некоторую информацию, поэтому я нарисовал маршрут get для нашей формы редактирования и маршрут обновления.
routes.rb:
resource :guide_dog_forms
get '/cao-guia/:id/editar', to: 'guide_dog_forms#edit', as: :edit_guide_dog_form
put '/cao-guia/:id/', to: 'guide_dog_forms#update'
После этого я отредактировал свои контроллеры и добавил следующие действия:
class GuideDogFormsController < ApplicationController
def create
@contact = GuideDogForm.new(params[:contact])
if @contact.save
GuideDogMailer.delay_for(10.seconds, retry: true).create(@contact)
render nothing: true, status: 200
else
render nothing: true, status: 400
end
end
def edit
@guidedoguser = GuideDogForm.find(params[:id])
end
def update
@guidedoguser = GuideDogForm.find(params[:id])
@guidedoguser.update(name: params[:name], email: params[:email])
redirect_to guide_dog_form_path(@guidedoguser)
end
end
Мои текущие рейк-маршруты такие:
guide_dog_forms POST - /guide_dog_forms(.:format) - guide_dog_forms#create
new_guide_dog_forms GET - /guide_dog_forms/new(.:format) - guide_dog_forms#new
edit_guide_dog_forms GET - /guide_dog_forms/edit(.:format) - guide_dog_forms#edit
GET - /guide_dog_forms(.:format) - guide_dog_forms#show
PATCH - /guide_dog_forms(.:format) - guide_dog_forms#update
PUT - /guide_dog_forms(.:format) - guide_dog_forms#update
DELETE - /guide_dog_forms(.:format) - guide_dog_forms#destroy
Когда я отправляю свою форму редактирования, отображается URL-адрес localhost:3000/guide_dog_forms.80
(80 - это идентификатор формы, которую я пытаюсь отредактировать), а не тот, который я определил на своих маршрутах. Почему это происходит? Кто-нибудь может мне помочь? Спасибо.