環境
macOS Catalina 10.15.5
Rails 6.0.3
Railsチュートリアルとそれに付随するいろいろを書いていきます。
Githubに慣れたいので、チュートリアルは第6版に準拠しています。
3.3.2 Red
/static_pages/aboutというURLからビューを表示させたい。
$ rails tからどのような順番で確認していくか?
結論
①config/routes.rbにURLを作る
②app/controllers/static_pages_controller.rbにaboutアクションを作る
③app/views/static_pagesにabout.html.erb(ビュー)を作成する
概要
test追加
test "should get about" do
get static_pages_about_url
assert_response :success
end
end
↓
$ rails t
NameError: undefined local variable or method `static_pages_about_url'
「`static_pages_about_url'(URL)が見つからない」
↓
①
routes.rbにURLを作る
get 'static_pages/about'
(/static_pages/aboutというURLに対してGETリクエストが来たら、StaticPagesコントローラのaboutアクションに渡す)
↓
$ rails t
AbstractController::ActionNotFound:
The action 'about' could not be found for StaticPagesController
「StaticPagesコントローラにaboutアクションがない」
↓
②
static_pages_controller.rbにaboutアクションを作る
def about
end
↓
$ rails t
ActionController::MissingExactTemplate:
StaticPagesController#about is missing a template for request formats: text/html
「StaticPagesControllerでaboutのテンプレートが無い」
↓
③
app/views/static_pagesにabout.html.erbを作成する
(テンプレート=views内のデータ なので、例えばaboutアクションはabout.html.erbというビューに関連付けられるため。
今回はstatic_pagesに関するビューなので該当のフォルダに置く)
$ touch app/views/static_pages/about.html.erbを実行するとファイルが作成されました。
↓
$ rails t
結果は green になりました。