2016-08-18 11 views
0

私は静的なページにタイトルを追加しようとするとビデオのWebサイトを構築しています。ビデオ:"定義されていないメソッド` title for nil:NilClass "Ruby on Railsのエラー

watch.html.erbここ

<div class="panel panel-default"> 
<div class="panel-body"> 
<div class="col-md-4"> 
    <p>You're watching:</p> 
    <h1><%= @movie.title %></h1> 
</div> 
</div> 
</div> 

そして、私のmovies_controller.rbファイルです:

class MoviesController < ApplicationController 
before_action :set_movie, only: [:show, :edit, :update, :destroy] 
before_action :authenticate_user!, except: [:index, :show] 

def watch 
end 

def index 
@movies = Movie.all 
end 

def show 
@reviews = Review.where(movie_id: @movie.id).order("created_at DESC") 
end 

def new 
@movie = current_user.movies.build 
end 

def edit 
end 

def create 
@movie = current_user.movies.build(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 

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 

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 

def set_movie 
    @movie = Movie.find(params[:id]) 
end 

private 
def movie_params 
    params.require(:movie).permit(:title, :description, :movie_length,  :director, :rating, :image) 
end 
end 

マイウォッチ方式は、私は私のコントローラファイル、上記 "プライベート" であります語った主な理由の一つですwこのエラーが表示されます。しかし、ページに行くたびに、エラーが表示されます。誰かが私が間違っていることを教えてもらえますか?

答えて

1

エラーメッセージは非常に明確です。@movienilです。 watchアクションのどこにも、その変数をnil以外のものとして定義しようとしています。@movieには、実行するアクションのリストにはwatchが含まれていません。before_actionコールバック

関連する問題