Ich habe es schwer, die Routen zu meinen Seiten zu erstellen. Ich habe gezeigt, was funktioniert, aber die Bearbeitung kommt immer mit einem Fehler auf. Der aktuelle Code ist eine Modifikation dieser railscast zusammen mit der freundlichen ID gem. Danke, wenn du helfen kannst. HierFehler beim Bearbeiten einer Seite: Parameter fehlt oder der Wert ist leer: static_page
ist der Controller:
class StaticPagesController < ApplicationController
before_action :set_static_page, only: [:show, :edit, :update, :destroy]
before_filter :except => [:show] do
redirect_to :new_user_session unless current_user && current_user.role == 5
end
# GET /static_pages
# GET /static_pages.json
def index
@static_pages = StaticPage.all
end
# GET /static_pages/1
# GET /static_pages/1.json
def show
end
# GET /static_pages/new
def new
@static_page = StaticPage.new
end
# GET /static_pages/1/edit
def edit
@static_page = StaticPage.find_by_slug(params[:slug])
end
# POST /static_pages
# POST /static_pages.json
def create
@static_page = StaticPage.new(static_page_params)
respond_to do |format|
if @static_page.save
format.html { redirect_to @static_page, notice: 'Static page was successfully created.' }
format.json { render :show, status: :created, location: @static_page }
else
format.html { render :new }
format.json { render json: @static_page.errors, status: :unprocessable_entity }
end
end
end
# PATCH/PUT /static_pages/1
# PATCH/PUT /static_pages/1.json
def update
respond_to do |format|
if @static_page.update(static_page_params)
format.html { redirect_to @static_page, notice: 'Static page was successfully updated.' }
format.json { render :show, status: :ok, location: @static_page }
else
format.html { render :edit }
format.json { render json: @static_page.errors, status: :unprocessable_entity }
end
end
end
# DELETE /static_pages/1
# DELETE /static_pages/1.json
def destroy
@static_page.destroy
respond_to do |format|
format.html { redirect_to static_pages_url, notice: 'Static page was successfully destroyed.' }
format.json { head :no_content }
end
end
private
# Use callbacks to share common setup or constraints between actions.
def set_static_page
@static_page = StaticPage.find_by_slug(params[:slug])
end
# Never trust parameters from the scary internet, only allow the white list through.
def static_page_params
params.require(:static_page).permit(:title, :permalink, :content, :tags, :author, :date)
end
end
Hier wird die Route ist:
Rails.application.routes.draw do
resources :static_pages, except: [:show, :delete, :update]
devise_for :users
mount Bootsy::Engine => '/bootsy', as: 'bootsy'
get 'profile' => "users#profile"
root 'indexes#index'
get ':slug', to: 'static_pages#show'
get ':slug', to: 'static_pages#delete'
get ':slug/edit', to: 'static_pages#update'
# The priority is based upon order of creation: first created -> highest priority.
# See how all your routes lay out with "rake routes".
# You can have the root of your site routed with "root"
# root 'welcome#index'
# Example of regular route:
# get 'products/:id' => 'catalog#view'
# Example of named route that can be invoked with purchase_url(id: product.id)
# get 'products/:id/purchase' => 'catalog#purchase', as: :purchase
# Example resource route (maps HTTP verbs to controller actions automatically):
# resources :products
# Example resource route with options:
# resources :products do
# member do
# get 'short'
# post 'toggle'
# end
#
# collection do
# get 'sold'
# end
# end
# Example resource route with sub-resources:
# resources :products do
# resources :comments, :sales
# resource :seller
# end
# Example resource route with more complex sub-resources:
# resources :products do
# resources :comments
# resources :sales do
# get 'recent', on: :collection
# end
# end
# Example resource route with concerns:
# concern :toggleable do
# post 'toggle'
# end
# resources :posts, concerns: :toggleable
# resources :photos, concerns: :toggleable
# Example resource route within a namespace:
# namespace :admin do
# # Directs /admin/products/* to Admin::ProductsController
# # (app/controllers/admin/products_controller.rb)
# resources :products
# end
end
Hier ist die Form, in der der Fehler poping auf form.html.haml hält:
= simple_form_for(@static_page) do |f|
= f.error_notification
.form-inputs
= f.input :title
= f.input :permalink
.bootsy_text_area
= f.bootsy_area :content, :class => 'form-control', rows: 12
= f.input :tags
= f.input :author
= f.input :date
.form-actions
= f.button :submit
Vielen Dank ... das war's! – Jakxna360
Froh, zu helfen :) – asalgan