Я как бы новый в Rails, и у меня проблемы с маршрутами. Когда я пытаюсь удалить элемент управления, появляется сообщение об ошибке «Нет маршрута соответствует [УДАЛИТЬ]» /months.5. И я не знаю, почему. Я покажу вам свой код.Нет совпадений в маршруте [Удалить] "/months.5"
Ruotes.rb
Rails.application.routes.draw do
root 'staticpages#index'
devise_for :users # :path => '',
# path_names: {sign_in: 'login', sign_up: 'registro'},
# controllers: {sessiones: 'users/controls'}
get '/controls/calendar' => 'controls#event'
get 'graphicscontrols' => 'graphics#graphics_evolution'
get 'months' => 'controls#months'
# resources :users, only: [:show] do #:path => ''
resources :controls # :path => ''
resources :graphics, only: [:index]
resources :meals, only: [:index, :new, :create]
управления Контроллер
класс ControlsController < ApplicationController
before_action :authenticate_user!
def index
@user= current_user
@control= Control.new
@control_last= @user.controls.last
@controls= @user.controls.order_by_date
@controls_average = Control.controls_average (current_user.id)
@controls_average_day = Control.controls_day_average (current_user.id)
# @controls = Control.order_by_date
end
def event
@user= current_user
@[email protected]
render json: @controls if request.xhr?
end
def months
@user= current_user
@controls= @user.controls.order_by_date
end
def create
@user = current_user
control_params2 ={}
control_params2[:level] = control_params[:level]
control_params2[:period] = control_params[:period]
control_params2[:day]=DateTime.strptime(control_params[:day],'%m/%d/%Y %I:%M %p')
@control= @user.controls.build(control_params2)
@control.save!
flash[:notice] = "Congratulations, your control has been created"
redirect_to controls_path
rescue ActiveRecord::RecordInvalid
render 'index'
end
def edit
@control = Control.find(params[:id])
end
def update
@user = current_user
@control = Control.find(params[:id])
if @control.update_attributes(control_params)
flash[:notice] = "Congratulations, your control has been updated"
redirect_to controls_path(current_user)
else
@errors = @control.errors.full_messages
render 'edit'
end
end
def delete
@control= Control.find(params[:id])
end
def destroy
@control= Control.find(params[:id])
if @control.delete
flash[:notice] = "Congratulations, your control has been removed"
redirect_to months_path
end
end
private
def control_params
params.require(:control).permit(:level, :period, :day)
end
конец
просмотров/контроль/moonths.html.erb
<h1>Controls</h1>
<ul>
<% @controls.each do |control| %>
<li><%= "Blood Sugar Control:" + control.level.to_s + " - " + control.period + " - " + control.day.to_s %></li>
<%= link_to "Delete", months_path(control), method:'delete', data: {confirm: "Are you sure?"} %>
<%= link_to "edit", edit_control_path(control)%>
</ul>
<% end %>
Хорошо, если я ставлю control_path (Control.ID) он работает, но то, что я хочу, что, когда я нажимаю на удаление перенаправляет меня month_path. Но если я пишу month_path (control.id), он говорит: «Нет маршрутов» [DELETE] »/controls.20» –
do 'month_path (id: control.id)' – Nithin