Я пытаюсь отправить форму, но я бегу в ошибкуНет маршрута матчей [PATCH]
Нет маршрута матчей [PATCH]
Я видел множество постов на эта ошибка, но в каждом из них они устанавливают только get
в своих маршрутах или некоторую такую ошибку. У меня также не было проблем с отправкой других форм с почти одинаковой структурой маршрутизации и формы.
Так первый, Security has_many :stockholders
Моя форма выглядит следующим образом (место нахождения: views/stockholders/edit.html.erb
):
<%= simple_form_for @stockholder, url: url_for{action:'update', controller:"stockholders"}, html: {id:"stockholderform"}, update: { success: "response", failure: "error"} do |f| %>
<div class="container">
<div class="symegrid">
<div class="form-inline">
<%= f.grouped_collection_select :entity_id, [Org, Person], :all, :model_name, :to_global_id, lambda {|org_or_person_object| org_or_person_object.instance_of? Org? rescue org_or_person_object.fname + " " + org_or_person_object.lname rescue org_or_person_object.name}, label:"Stockholder", class: "names"%>
</div>
<div class="form-inline">
<%= f.input :cert_number, label:"Certificate Number" %>
<%= f.input :issue_date, Label: "Issue Date" %>
</div>
</div>
<div class="submit_button">
<%= f.submit %>
</div>
</div>
<% end %>
И мой контроллер:
class StockholdersController < ApplicationController
def edit
@stockholder=Stockholder.find(params[:id])
@security=Security.find(params[:security_id])
@[email protected]
end
def update
@stockholder=Stockholder.find(params[:id])
@security=Security.find(params[:security_id])
@[email protected]
if @stockholder.update(stockholder_params)
redirect_to edit_security_path(@security)
else
redirect_to edit_security_stockholder_path
end
end
private
def stockholder_params
params.require(:stockholder).perimit(:id, :entity_id, :cert_number, :issue_date, :shares_issued, :shares_repurchased, :shares_canceled, :shares_outstanding)
end
end
Наконец, мои маршруты:
resources :securities do
resources :stockholders
end
Может ли кто-нибудь помочь мне понять, что здесь происходит? Я структурировал две модели именно таким образом и не столкнулся с проблемой.
Большое спасибо заранее
Спасибо за ответ. К сожалению, я все еще получаю ту же ошибку. – neanderslob
Получил это, просто пришлось удалить элемент 'url: {action: 'update', controller:" sharesholders}} 'и добавить' @ security' так же, как вы сказали. – neanderslob