2017-01-22 144 views
0

我對Ruby on Rails非常新穎。我試圖通過製作簡單的博客來了解指南並學習。當試圖訪問本地主機是給我在標題中的錯誤。我確信這是一個簡單的解決方法,目前我無法看到它。謝謝!articles_controller.rb:26:語法錯誤,意外的輸入結束,期待keyword_end

class ArticlesController < ApplicationController 
    def new 
    @article = Article.new 
    end 
    def create 
    @article = Article.new(article.params) 

    if @article.save 
     redirect_to @article 
    else 
     render 'new' 

    end 

    private 
    def article_params 
     params.require(:article).permit(:title, :text) 
    end 

    def index 
    @articles = Article.all 
    end 

    def show 
    @article = Article.find(params[:id]) 
    end 
end 
+2

如果在創建方法中缺少結尾 – Doon

回答

2

create行動加入end字。這必須努力

class ArticlesController < ApplicationController 
    def new 
    @article = Article.new 
    end 
    def create 
    @article = Article.new(article.params) 

    if @article.save 
     redirect_to @article 
    else 
     render 'new' 
    end 
    end 

    private 
    def article_params 
     params.require(:article).permit(:title, :text) 
    end 

    def index 
    @articles = Article.all 
    end 

    def show 
    @article = Article.find(params[:id]) 
    end 
end 
+0

並附加「結束」我得到一個新錯誤,「未定義方法」每個爲零:NilClass「 –

+0

'article_params'而不是'article.params '我猜 – VAD

+0

謝謝你VAD!這有幫助。對我來說是漫長的一天,討厭犯錯誤,哈哈。 –

4

壓痕

如果你的文本編輯器不能自動縮進代碼,用一個又一個!

如果你的文本編輯器可以縮進代碼,請使用它;)

class ArticlesController < ApplicationController 
    def new 
    @article = Article.new 
    end 
    def create 
    @article = Article.new(article.params) 

    if @article.save 
     redirect_to @article 
    else 
     render 'new' 

    end 

    private 
    def article_params 
     params.require(:article).permit(:title, :text) 
    end 

    def index 
     @articles = Article.all 
    end 

    def show 
     @article = Article.find(params[:id]) 
    end 
    end 

你可以看到,def create用正確的縮進的最後一個方法定義,所以這個問題必須從這裏來。

PARAMS

您定義article_params方法,但調用article.params。這可能是另一個問題。

私有方法

private關鍵字是私人被定義的任何方法。不只是article_params,而且showindex,在你的情況。我猜最後兩個應該是公開的(即關鍵字private以上)。

+0

關於私人修復後的方法的評論。我看到你在那裏說什麼,現在這很有道理。非常感謝! –

+0

如果這解決了您的問題,請將您的問題標記爲已回答。 – toughskin

相關問題