Rails:パラメータが欠落しているか、値が空です:記事

概要

私は Rails の初心者で、rubyonrails.org チュートリアルに従って Web アプリを作成し始めました。

私のアプリは記事のあるブログです。作成および編集機能を実装してかなりうまく機能しましたが、記事を編集するために http://localhost:3000/articles/2/edit にアクセスしようとすると突然エラーが発生しました。 エラーは、ArticlesController#edit の ActionController::ParameterMissing です。パラメータが見つからないか、値が空です:articles

これが私のRubyコードです:

class ArticlesController < ApplicationController
  def index
    @articles = Article.all
  end

  def new
    @article = Article.new
  end

  def edit
    @article = Article.find(params[:id])
    if @article.update(article_params)
      redirect_to @article
    else
      render 'edit'
    end
  end

  def show
    @article = Article.find(params[:id])
  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
end

エラー アラートの対象となる行は、params.require(:articles).permit(:title, :text) です。 2分前まではすべて問題がなかったので、どこにエラーがあるのか本当にわかりません…

助けてくれてありがとう

解決策

edit メソッドで記事を更新しようとしています。したがって、「articles/2/edit/」に移動すると、記事 2 を更新しようとします。ただし、パラメータは渡されていません。

おそらくあなたが望んでいることは次のとおりだと思います:

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

def update
  @article = Article.find(params[:id])
  if @article.update(article_params)
    redirect_to @article
  else
    render 'edit'
  end
end