Ich versuche, eine neue Aktionsliste in meinem zuvor erstellten Blog mit Gerüst zu erstellen. Ich bin einen Fehler inFehler beim Erstellen einer neuen Aktion zu scaffold created Controller in Schienen
bekommenkonnte nicht Blog mit 'id' =
auf controllers/blogs_controller.rb
Hier ist mein Controller-Code finden.
class BlogsController < ApplicationController
before_action :authenticate_user!, :except => [:index, :show]
layout 'admin', only:[:new, :create, :update, :destroy, :edit, :list]
before_action :set_blog, only: [:show, :edit, :update, :destroy,
:list]
# GET /blogs
# GET /blogs.json
def index
@blogs = Blog.all
end
# GET /blogs/1
# GET /blogs/1.json
def show
end
def list
@blogs = Blog.all
end
# GET /blogs/new
def new
@blog = Blog.new
end
# GET /blogs/1/edit
def edit
end
# POST /blogs
# POST /blogs.json
def create
@blog = Blog.new(blog_params)
respond_to do |format|
if @blog.save
format.html { redirect_to @blog, notice: 'Blog was successfully
created.' }
format.json { render :show, status: :created, location: @blog }
else
format.html { render :new }
format.json { render json: @blog.errors, status: :unprocessable_entity }
end
end
end
# PATCH/PUT /blogs/1
# PATCH/PUT /blogs/1.json
def update
respond_to do |format|
if @blog.update(blog_params)
format.html { redirect_to @blog, notice: 'Blog was successfully updated.' }
format.json { render :show, status: :ok, location: @blog }
else
format.html { render :edit }
format.json { render json: @blog.errors, status: :unprocessable_entity }
end
end
end
# DELETE /blogs/1
# DELETE /blogs/1.json
def destroy
@blog.destroy
respond_to do |format|
format.html { redirect_to blogs_url, notice: 'Blog was successfully destroyed.' }
format.json { head :no_content }
end
end
private
# Use callbacks to share common setup or constraints between actions.
def set_blog
@blog = Blog.find(params[:id])
end
# Never trust parameters from the scary internet, only allow the white list through.
def blog_params
params.require(:blog).permit(:title, :description)
end
Ende
und mein routes.rb ist
Rails.application.routes.draw do
resources :blogs do
collection do
get :list, :as => 'list'
end
end
root to: 'home#index'
end
nun in meiner neuen Controller Ansicht genannt list.html.erb, ich brauche alle Blog-Post abgesehen von der sehen normale Showaktion.
In meinem list.html.erb
<td><%= link_to blog.title %></td>
Der Fehler wird mir zeigt set_blog in
private
# Use callbacks to share common setup or constraints between actions.
def set_blog
@blog = Blog.find(params[:id])
end
wirkt wie ein Zauber .. danke. – raja
@raja Warum haben Sie die richtige Markierung entfernt? –
Dies sollte die akzeptierte Antwort sein! – Pavan