In meiner App habe ich Modelle mit den Namen weeklies
und scores
. Jede Woche has_many
Punkte und jede Punktzahl belongs_to
eine Woche und ein Benutzer. Ich habe die Methoden zum Erstellen und Anzeigen funktioniert gut, aber wenn ich versuche, eine Punktzahl zu löschen, bekomme ich Couldn't find Weekly without an ID
.Wöchentlich ohne ID nicht gefunden (Löschen in Rails)
Meine weekly#show
Seite ist, wo alles geht:
Da dies die weekly#show
Seite, hier ist mein weeklies_controller
, die in meinem Kopf Zuständigkeit haben sollte:
class WeekliesController < ApplicationController
def index
@weeklies = Weekly.all.order("created_at DESC")
@most_recent_weekly = Weekly.order("created_at").last
end
def show
@weekly = Weekly.friendly.find(params[:id])
@score = Score.new
end
def new
@weekly = Weekly.new
@weekly.user_id = current_user
end
def create
@weekly = Weekly.new(weekly_params)
@weekly.user = current_user
if @weekly.save
flash[:notice] = "Workout of the week was saved successfully."
redirect_to @weekly
else
flash.now[:alert] = "Error creating workout. Please try again."
render :new
end
end
def edit
@weekly = Weekly.friendly.find(params[:id])
@weekly.user_id = current_user
end
def update
@weekly = Weekly.friendly.find(params[:id])
@weekly.name = params[:weekly][:name]
@weekly.teaser = params[:weekly][:teaser]
@weekly.instructions = params[:weekly][:instructions]
@weekly.difficulty = params[:weekly][:difficulty]
@weekly.video = params[:weekly][:video]
@weekly.user = current_user
if @weekly.save
flash[:notice] = "Workout was updated successfully."
redirect_to @weekly
else
flash.now[:alert] = "Error saving workout. Please try again."
render :edit
end
end
def destroy
@weekly = Weekly.friendly.find(params[:id])
if @weekly.destroy
flash[:notice] = "\"#{@weekly.name}\" was deleted successfully."
redirect_to action: :index
else
flash.now[:alert] = "There was an error deleting the workout."
render :show
end
end
private
def weekly_params
params.require(:weekly).permit(:name, :teaser, :instructions, :video, :difficulty, :slug, :user_id)
end
end
Da jedoch, wir löschen eine Punktzahl und der Fehler zitiert den Punktestand-Controller (siehe markierte Zeile), hier ist die scores_controller
:
Hier sind die entsprechenden Routen:
reports POST /reports(.:format) reports#create
report DELETE /reports/:id(.:format) reports#destroy
weeklies GET /weeklies(.:format) weeklies#index
POST /weeklies(.:format) weeklies#create
new_weekly GET /weeklies/new(.:format) weeklies#new
edit_weekly GET /weeklies/:id/edit(.:format) weeklies#edit
weekly GET /weeklies/:id(.:format) weeklies#show
PATCH /weeklies/:id(.:format) weeklies#update
PUT /weeklies/:id(.:format) weeklies#update
DELETE /weeklies/:id(.:format) weeklies#destroy
scores GET /scores(.:format) scores#index
POST /scores(.:format) scores#create
new_score GET /scores/new(.:format) scores#new
edit_score GET /scores/:id/edit(.:format) scores#edit
score GET /scores/:id(.:format) scores#show
PATCH /scores/:id(.:format) scores#update
PUT /scores/:id(.:format) scores#update
DELETE /scores/:id(.:format) scores#destroy
Kann mir jemand helfen herauszufinden, wo dieser Fehler herkommt?
Was passiert, wenn Sie [: notice] = @weekly blinken? – Boltz0r
in der Destroy-Methode – Boltz0r
Der Fehler ist in der ersten Zeile der Methode destroy (Sorry, bearbeitet gerade den Beitrag, um dies anzuzeigen), so glaube ich nicht, es ist sogar zu den Flash-Benachrichtigungen noch zu bekommen. – Liz