2017-01-22 23 views
0

Ruby on Railsの新機能です。私はガイドを見て、シンプルなブログを作って学びます。 localhostにアクセスしようとすると、タイトルにエラーが表示されます。私はこれが簡単な修正であると確信しています、私は現時点でそれを見ることができません。ありがとうございました!articles_controller.rb:26:構文エラー、予期しない入力の終了、expecting 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

作成メソッドのifの一部として終了がありません – 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

追加の "終了"新しいエラーが発生しました。 "未定義メソッド' each 'はnilです: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もあります。最後の2つは公開されているはずです(つまり、privateキーワード以上)。

+0

私的に固定した後の方法に関するコメント。私はあなたがそこに言っていることを見ています。どうもありがとうございます! –

+0

これで問題が解決された場合は、質問に答えを記入してください。 – toughskin

関連する問題