現在ruby on railsを勉強しているのですが、
updateとcreateアクション時のパラーメーターの違いがわかりません。
createアクションの時は、
@article = Article.new(article_params)
でformからパラメーターを受け取り、インスタンス変数を生成しているのに、
updateアクションの時は、
@article = Article.find(params[:id])
でidを指定し、インスタンス変数を生成した上で、なおかつ、
if @article.update(article_params)
でパラメーターを受け取り、updateしているように見えます。
updateアクションは、なぜcreateアクションと同じように、
@article = Article.new(article_params)
if @article.update
と書けないのでしょうか。
以下、ソースコードです。
お分かりになる方いましたら、よろしくお願いします。
class ArticlesController < ApplicationController def new @article = Article.new end def edit @article = Article.find(params[:id]) end def create @article = Article.new(article_params) if @article.save flash[:notice] = "Article was successfully created" redirect_to article_path(@article) else render 'new' end end def update @article = Article.find(params[:id]) if @article.update(article_params) flash[:notice] = "Article was successfully updated" redirect_to article_path(@article) else render 'edit' end end def show @article = Article.find(params[:id]) end def article_params params.require(:article).permit(:title, :description) end end
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/05/15 15:56
2018/05/15 15:58