環境
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 になりました。