私は 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