エラー自体はよくある記述ミス。ただ、routes.rbの文法エラーがデータベースの作成時に出たのが気になったので記事にしました。
エラー文とその原因
エラー文
/Users/hiro_miyagi/projects/pictweet/config/routes.rb:12: syntax error, unexpected end (SyntaxError)
エラーが出た状況
ルーティングの設定を行った後に、ターミナル上でrails db:createコマンドを実行したら上記エラーが出た。
原因
config/routes.rbに文法ミスがあった。
間違った記述
resources :users, only: :show,
正しい記述
resources :users, only: :show
疑問点と回答
疑問点:なぜrails db:createコマンドを実行するとroutes.rbの文法エラーが出る?
データベースの作成コマンドであるrails db:createを実行したときに、routes.rbのエラーが出たことが疑問だった。
回答:railsコマンドを実行すると、configディレクトリ内のファイルを全て読み取ってから処理を実行しているから
configディレクトリはアプリケーションの設定が記述されているファイルが格納されている。
そのため、railsコマンドを実行すると
1. configディレクトリ内の設定を全て読み込む
2. 処理を実行(今回の場合はデータベースの作成)
という順番で処理が行われている。
なのでconfigディレクトリ内に文法エラーがあると、上記1.でsyntax errorが出る。
結論
railsコマンドで文法エラーが発生したらconfigディレクトリのファイル(特にroutes.rb)の記述を見直そう!