※本サイトで紹介している商品・サービス等の外部リンクには、アフィリエイト広告が含まれる場合があります。
CRUD(クラッド)とは
Create・Read・Update・Delete のこと
Webアプリケーションの基本的な機能をすべて備えているものを「CRUDアプリ」という
Create
「Create」(POSTリクエスト)
今回、実装したいこと
createアクション:記事を保存する
app/controller/article_controller.rbに以下のコードを書く
private
def article_params
params.require(:article).permit(:title, :content)
end
article_params
はStrong Parameterとも呼ぶ
記事投稿の動作を決める
下記のコードを、前述「private
」の上に書く
def create
@article = Article.new(article_params)
if @article.save
redirect_to article_path(@article)
else
render :new
end
end
2行目
@article = Article.new(article_params)
空の「@article
」に、新しい投稿「Article.new
」のデータ「article_params
」を入れる
「article_params
」には「(:title, :content)
」が入っている
3行目
if @article.save
「@article
」に投稿内容が一時的に入っているだけなので、「@article.save
」でデータベースに保存する
3〜4行目
if @article.save
redirect_to article_path(@article)
”もし”投稿内容が保存”できたら”、保存した記事ページ「article_path(@article)
」に遷移「redirect_to
」する
5〜6行目
else
render :new
”もし”投稿内容が保存”できなかったら”、「new.html.erb」(投稿画面)を表示する
↓ 「保存できない」とは、エラーが出てしまうとき
↓ render :new
について長くなったのでこちら
状況に応じて、以下のメッセージを表示させる
- 記事の保存ができたとき、「保存できました」
- 保存に失敗したとき、「保存に失敗しました」
def create
@article = Article.new(article_params)
if @article.save
redirect_to article_path(@article),
notice: '保存できました'
else
flash.now[:error] = '保存に失敗しました'
render :new
end
end
保存できた場合は、遷移先のhtmlで表示方法や場所の記載も必要になる
#DAY12