Ссылка в _applicant.html.erb выглядит в браузере так: http://localhost:3000/needs/3/applicants.1
и при нажатии на нее появляется в браузере:
Routing Error
No route matches [PUT] "/needs/3/applicants.1"
Я хочу, чтобы он обновил столбец принятия для этой конкретной строки кандидата. В основном я хочу, чтобы он отправлял данные в метод обновления контроллера заявителей. Как я могу изменить код, чтобы сделать это?
_заявитель.html.erb
<%= link_to 'Accept Applicant', need_applicants_path(applicant.need_id, applicant.id), :method => :put, :action => "update", :applicant => {:acceptance => true} %>
получил это от запуска рейк-маршрутов:
PUT /needs/:need_id/applicants/:id(.:format) applicants#update
маршруты.rb:
resources :needs, except: [:new] do
resources :applicants
end
претенденты_controller.rb
class ApplicantsController < ApplicationController
def update
@need = Need.find(params[:need_id])
@applicant = @need.applicants.find(params[:id])
if @applicant.update_attributes(params[:applicant])
flash[:success] = 'Your applicant has been accepted/rejected!'
redirect_to @need
else
@need = Need.find(params[:need_id])
render 'needs/show'
end
end
end