LoginSignup
8
4

More than 5 years have passed since last update.

ユーザーページを探検できなかった話

Posted at

Rails Tutorial 2章で沼ったのでメモ
Rails 5.1(第4版)

rails generate scaffold User name:string email:string
rails db:migrate

までうまくいったのだが、続きがうまくいかなかった。

URLに変なのがつく

2.2のUsersリソースで
rails server
してPreviewから遷移したページのURLを見たら
https://6b8aeab00f9f40d3b9dcc8bf7b7c212b.vfs.cloud9.us-east-2.amazonaws.com/?_c9_id=livepreview2&_c9_host=https://us-east-2.console.aws.amazon.com
と後ろに
?_c9_id=livepreview2&_c9_host=https://us-east-2.console.aws.amazon.com
がついてきた。
/usersをURLの最後に付け足しても何も遷移しない。こいつ何者。
同じ質問みっけた。
とりあえず、後ろのは消してもダイジョブみたい。

Routing Error: No route matches [GET] "/users"

先ほどの後ろのを削除したURLに/usersを追加してみた。
User画面に行くはず。
エラー.PNG

エラー。なんで。
ググったり、Twitter検索したら、どうやら config/routes.rb に/usersを指定すれば良いみたい。

routes.rb
Rails.application.routes.draw do
  resources :users #こいつを追加した
  root 'application#hello'
end

この時点でチュートリアルの通りじゃなくて違和感。

Routing Error uninitialized constant UsersController::RoutableActions

エラー2.PNG
コントローラーがない!?
流石にチュートリアル的におかしいと勘付く。
app/controllers を見ると、確かにUsersControllerは無かった。
本来であれば下の画像みたいになるはず。
コントローラ.PNG

魔法不発

魔法の言葉 rails generate scaffold User name:string email:string が怪しい。
ググると、こいつが config/routes.rbresources :users を追加したりコントローラーを作ってくれるはずのようだ。
というわけでもう一回実行してみると
Spring動かず.PNG

動いてませんでした。

scaffoldで生成された膨大なコードを今詳細に読む必要はありません。今の段階ではおそらく混乱するだけでしょう。

真に受けて全スルーしてた。
詳細には読まなくてもいいけど、同じかくらいは目を通しておきましょうね……。

犯人は

scaffold 動かない でググると同じような人がいっぱいいるようで。
http://rails-learn.hatenadiary.jp/entry/2016/12/30/090531
どうやらspringというアプリケーションプリローダーが悪さをしている模様。
rails generateがちゃんと動かなくなるらしい。
再起動。
ターミナルで

$ spring stop
$ bin/spring

で、もう一回魔法の言葉

$ rails generate scaffold User name:string email:string

ちゃんと動きました。
で、URLの後ろに/usersつけたらうまくいった。
疲れたが原因がちゃんとわかってよかった。一瞬飛ばそうかと思ったけど。

8
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
4