2016-06-22 5 views
0

他のものを検索して試しましたが、私はそれを取得しません。イベントページに入ったら、「編集」または「削除」をクリックできます。あなたがそれを作成したユーザーである場合に限ります。経路が[DELETE] "/ events"と一致しません

問題:「削除」をクリックします。私は3回確認します: "あなたは本当ですか?"私はそれらをクリックした後、すべては「OK」、それは述べていない「Noルートの一致を[削除] 『私は、ユーザシステムのための工夫と連携編集』これらはボタンです

『』と 『』 /削除イベントを:。

<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> 

私はチュートリアルに続き、同じものを使用し、「events_controller」という名前のコントローラを持って、私は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

+0

ここであなたはパスを渡しています。代わりに削除するオブジェクトを渡す必要があります。例えば、「ユーザまたは@ユーザ」 – mrvncaragay

+0

@ Marv-C私は理解していると思うが、何を書くべきか?私は '@ event.destroy'と' redirect_to events_path'と言うので、 –

答えて

2

event_path(NOT 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がありません(それは必要ありません)。

+0

こんにちは!今度は 'No route matches [DELETE] '/events.6" ' –

+0

あなたのコンソールでrakeルートを実行したときの出力は? –

+0

'events_path'から' event_path'に変更しましたか? – SteveTurczyn

関連する問題