2016-08-18 60 views
0

我正在建立一個視頻網站,當我嘗試添加一個標題到我的靜態頁面,用戶可以觀看視頻:「未定義的方法`標題爲零: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 

我的表的方法是在我的控制文件,我上面的 「私有」被告知是主要原因之一這個錯誤顯示出來。但每次我嘗試去頁面,錯誤仍然出現。有人能告訴我我做錯了什麼嗎?

回答

1

錯誤消息非常明確:@movienil。您的watch動作中沒有任何地方會嘗試將該變量定義爲nil以外的其他任何值,並且您的before_action回調會非常明確地填充@movie並不包括watch在其運行的操作列表中。

相關問題