我搜索并尝试了其他的东西,但我没有得到它。当我在活动页面上时,您可以点击"编辑"或"删除"。只有您是创建它的用户。
问题:我点击"删除"。我得到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
答案 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(并且您不需要它)