2017-10-17 42 views
0

這很奇怪,我必須錯過一些東西,因爲我已經完成了這一百萬次,這是我第一次看到這個。Rails 5.1控制器操作實例變量沒有出現在視圖中

香草創建控制器動作:

def create 
    @album = Album.new(album_params) 

    respond_to do |format| 
     if @album.save 
     format.html { redirect_to @album, notice: 'Album was successfully created.' } 
     format.json { render :show, status: :created, location: @album } 
     else 
     format.html { render :new } 
     format.json { render json: @album.errors, status: :unprocessable_entity } 
     end 
    end 
    end 

    def album_params 
    params.require(:album).permit(:title) 
    end 

而經過一個成功的香草視圖中創建一個相冊的:

<p id="notice"><%= notice %></p> 

<p> 
    <strong>Title:</strong> 
    <%= @album.title %> 
</p> 

<%= link_to 'Edit', edit_album_path(@album) %> | 
<%= link_to 'Back', albums_path %> 

我調試通過檢查後,我打造的專輯,@album是正確的建立。我還設置了第二個實例變量@foo = 100。但是在當視圖獲取呈現任何情況下,這兩個實例變量是零,我得到這個錯誤(見圖片,這是最簡單的方法)

enter image description here

+0

顯示控制器表演動作。 – krishnar

回答

2

如果你看一下請求參數部分,你會看到:

{ "controller" => "albums", "action" => "show", "id" => "20" } 

錯誤來自渲染show行動,而不是create行動來。

發生什麼事情是,在創建@album後,它正在執行redirect_toshow操作。

show行動可能沒有定義,沒有建立@album實例變量

+0

感謝友善(見上文)對愚蠢錯誤的迴應:) – pitosalas

相關問題