目次 閉じる
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)
endarticle_paramsはStrong Parameterとも呼ぶ
記事投稿の動作を決める
下記のコードを、前述「private」の上に書く
def create
@article = Article.new(article_params)
if @article.save
redirect_to article_path(@article)
else
render :new
end
end2行目
@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
