5.3.記事を作成する
Articlesコントローラに'create'というアクションがありませんと言っているので、追加してあげよう。
(このエラー内容に沿って修正していくだけでも正解に近づく感じ、レールの上に乗っているみたい)
class ArticlesController < ApplicationController
def new
end
def create
end
end
…
かたまったんやけど…
「修正後のフォームを再送信すると、おそらくページには何の変更も表示されないでしょう。しかし心配は無用です。Railsのアクションは、レスポンスの種類を指定しない場合は204 No Contentをデフォルトで返します。ここではcreateアクションを追加しただけで、レスポンスの振る舞いについて何も指定していませんので、新しい記事はcreateアクションによってデータベースに保存されているはずです。」
だって。
まだ実装してないからだけど、サイレントだとユーザに優しくないねえ。
ここでちょっくらログをみてみよう。
実はここにログが出力されている。
ほうほう。これでデータベースに保存されていることになるの?
でもパラメータとして記事の内容が送られている感じはする。
createアクションをいじくって、パラメータの中身を確認してみよう。
class ArticlesController < ApplicationController
def new
end
def create
render plain: params[:article].inspect
end
end
render plain: params[:article].inspect
というのをcreateアクションの中に書いた。
render
:なんか簡単にviewを表示できるメソッドらしい。百聞は一見にしかず。
plain:と書くことで、単純にその後ろのparams[:article].inspectの内容をブラウザ上に表示できるらしい。
paramsの中にはフォームで送信した中身が詰め込まれているみたい。
ここで初めてアクションの中に処理を書きました。(といってもデバッグ用の様なものだけど)
今までは空っぽのアクションを呼び出して、それに対応するビューを出してただけだけど、パラメータとしてアクションに送った内容をアクション内でいじくれることが今回わかった。
これって結構重要だよね。
おーなんとなく仕組みがわかってきたぞ。
その4
https://qiita.com/Natsuki_on_Rails/items/5db500e27b330b7ad0f3
参考
Railsガイド
https://railsguides.jp/