没有路线匹配[DELETE]" / events"

时间:2016-06-22 21:14:02

标签: ruby-on-rails

我搜索并尝试了其他的东西,但我没有得到它。当我在活动页面上时,您可以点击"编辑"或"删除"。只有您是创建它的用户。

问题:我点击"删除"。我得到3次确认:"你确定吗?"在我点击它们之后" ok"它说"没有路线匹配[DELETE]" / events"

这些按钮"编辑"和"删除"。我与Devise一起为用户系统工作:

<div class="btn-group pull-right">
  <% if current_user.id == @event.user.id && user_signed_in? %>
    <%= link_to "Edit", edit_event_path, class: "btn btn-default" %>
    <%= link_to "Delete", events_path, method: :delete, data: { confirm: "Are you sure?" }, class: "btn btn-default" %>
  <% end %>
</div>

我有一个名为&#34; events_controller&#34;的控制器。我按照教程使用了同样的东西。我用过CRUD系统。创建读取更新删除:

class EventsController < ApplicationController
before_action :find_event, only: [:show, :edit, :update, :destroy]

def index #index pagina
  @event = Event.all.order("created_at DESC")
end

def show
end

def new
@event = current_user.events.build
end

#CRUD actions

def create
 @event = current_user.events.build(event_params)
  if @event.save
    redirect_to @event, notice: "Event created."
  else
   render 'new'
 end
end

def edit
end

def update #event updaten
 if @event.update(event_params)
   redirect_to @event, notice: "Event updated."
 else
   render 'edit'
 end
end

def destroy
  @event.destroy
  redirect_to events_path
end

private
 def event_params
  params.require(:event).permit(:title, :description, :image)
 end

 def find_event
  @event = Event.find(params[:id])
 end
end

这些是我的路线: https://gyazo.com/57c5b0da9a82dbcc2744e0f8262d0f8d

1 个答案:

答案 0 :(得分:2)

event_path(非events_path)需要知道事件的ID,因此您需要将事件传递给它。

<%= link_to "Delete", event_path(@event), method: :delete, data: { confirm: "Are you sure?" }, class: "btn btn-default" %>

events_path仅适用于集合方法,不适用于处理单个事件的方法。并且您的路线中没有events_path DELETE(并且您不需要它)