I Rails bin mit Gerüst ein einfaches Modell Movies
, dass die name
des Films enthält genannt zu schaffen, director
, synopsis
und poster
.Rails nicht initialisierte Konstante Fehler mit mount_uploader
Ich benutze die Carrierwave Edelstein, um das Posterbild hochzuladen. Als ich zuerst den Schienen Server booten, bekomme ich die folgende Meldung:
in MoviesController # Nameerror neue
nicht initialisierte Konstante Film :: PosterUploader
Die extrahierte Quelle zeigt die Fehlerbildschirm ist meine models/movie.rb
Datei:
class Movie < ApplicationRecord
mount_uploader :poster, PosterUploader
end
Hier ist meine Filme Controller:
class MoviesController < ApplicationController
before_action :set_movie, only: [:show, :edit, :update, :destroy]
# GET /movies
# GET /movies.json
def index
@movies = Movie.all
end
# GET /movies/1
# GET /movies/1.json
def show
end
# GET /movies/new
def new
@movie = Movie.new
end
# GET /movies/1/edit
def edit
end
# POST /movies
# POST /movies.json
def create
@movie = Movie.new(movie_params)
respond_to do |format|
if @movie.save
format.html { redirect_to @movie, notice: 'Movie was successfully
created.' }
format.json { render :show, status: :created, location: @movie }
else
format.html { render :new }
format.json { render json: @movie.errors, status:
:unprocessable_entity }
end
end
end
# PATCH/PUT /movies/1
# PATCH/PUT /movies/1.json
def update
respond_to do |format|
if @movie.update(movie_params)
format.html { redirect_to @movie, notice: 'Movie was successfully
updated.' }
format.json { render :show, status: :ok, location: @movie }
else
format.html { render :edit }
format.json { render json: @movie.errors, status:
:unprocessable_entity }
end
end
end
# DELETE /movies/1
# DELETE /movies/1.json
def destroy
@movie.destroy
respond_to do |format|
format.html { redirect_to movies_url, notice: 'Movie was successfully
destroyed.' }
format.json { head :no_content }
end
end
private
# Use callbacks to share common setup or constraints between actions.
def set_movie
@movie = Movie.find(params[:id])
end
# Never trust parameters from the scary internet, only allow the white
list through.
def movie_params
params.require(:movie).permit(:title, :director, :synopsis, :poster)
end
end
Wenn ich das Modell erstellt mit Rails Gerüst ich das Plakat gemacht um eine Zeichenfolge, verändern aber die teilweise in diesem Abschnitt der Filme auf Datei bilden:
<div class="field">
<%= form.label :poster %>
<%= form.file_field :poster, id: :movie_poster %>
</div>
Hier ist meine routes
Datei nur in Fall habe ich einen Fehler dort gemacht:
Rails.application.routes.draw do
resources :movies
root 'movies#index'
# For details on the DSL available within this file, see
http://guides.rubyonrails.org/routing.html
end
Jede Hilfe würde sehr geschätzt werden.
Dank soviel erzeugen sollte. Das hat perfekt funktioniert. –
@glad zu helfen :) Akzeptieren Sie meine Antwort. – Pavan