Neden bir kimliği bir kimliği almaya çalıştığınızda ActiveRecord :: RecordNotFound Hatası alıyorum neden bulmak için yardıma ihtiyacım var. Aşağıda benim hata ve kod. Bu yayına başka herhangi bir dosya eklenmesi gerekiyorsa lütfen bana bildirin. Yardım için şimdiden teşekkür ederiz!Params [: id] ActiveRecord :: RecordNotFound Hatası döndürme
Hata
ActiveRecord::RecordNotFound in WikisController#show
Couldn't find Wiki with 'id'=edit
def show
@wiki = Wiki.find(params[:id]) #Highlighted line within error
authorize @wiki
end
Kontrolör
class WikisController < ApplicationController
before_action :authenticate_user!, except: [:index, :show]
def index
@wikis = Wiki.visible_to(current_user)
authorize @wikis
end
def new
@wiki = Wiki.new
authorize @wiki
end
def create
@wiki = current_user.wikis.create(wiki_params)
authorize @wiki
if @wiki.save
flash[:notice] = "Wiki was saved."
redirect_to @wiki
else
flash.now[:alert] = "Error saving Wiki. Try again."
render :new
end
end
def show
@wiki = Wiki.find(params[:id])
authorize @wiki
unless @wiki.private == nil
flash[:alert] = "You must be signed in to view private topics."
redirect_to new_session_path
end
end
def edit
@wiki = Wiki.find(params[:id])
authorize @wiki
end
def update
@wiki = Wiki.find(params[:id])
authorize @wiki
if @wiki.update_attributes(wiki_params)
flash[:notice] = "Wiki was updated."
redirect_to @wiki
else
flash.now[:alert] = "Error saving the Wiki. Try again."
render :edit
end
end
def destroy
@wiki = Wiki.find(params[:id])
authorize @wiki
if @wiki.destroy
flash[:notice] = "\"#{@wiki.title}\" was deleted successfully."
redirect_to root_path
else
flash.now[:alert] = "Error deleting Wiki. Try again."
render :show
end
end
private
def wiki_params
params.require(:wiki).permit(:title, :body, :role)
end
end
Rotalar
Rails.application.routes.draw do
resources :wikis
resources :charges, only: [:new, :create]
devise_for :users
resources :users, only: [:update, :show] do
post 'downgrade'
end
get 'welcome/index'
get 'welcome/about'
root 'welcome#index'
end
before_action
rotalarınızı ekleyin kullanarak kontrolörü kadar kısaltabilir: – Shani@Tucker Bu hatayı önceden anlamak için genellikle 'find_by (attrs_hash)' kullanırım. Hiçbir kayıt bulunmazsa sıfırlanır ve bu durumu ele almanıza izin verilir. –
@Shani - Rotaları ekledim. URL'm "wikis/id/edit" yerine "wikis/edit" oluşturduğundan kesinlikle bir rota sorunu var. Burada neyi özlüyorum? – Tucker