rails日誌(2)
shiningcureseven.hatenablog.com
の続き
コントローラー
$ rails generate controller product
した.
命名はDBのテーブルに従った.product_controller.rb書いた
アクション名:view
テンプレート変数:@msgテンプレートファイルview.html.erbを手で作った.
1.の時$ rails generate controller product view
しておけばビューview.html.erbも同時にできていたことをあとで知った.
名前は対応させたいアクション名と同じにする必要がある. アクションメソッドを実行したあと,対応するテンプレートを検索実行する.view.html.erbを書いた.
ただ@msgを渡しただけ.<%= %>は中を出力する.routes.rbにviewのパスを書いた.
get 'product/view'
http://localhost:3000/product/viewの結果が
ログ
エラー文にログを見ろと言われているのでlogファイルの中身は..
白紙の.keepのみ.
dockerがいけないのか,railsがいけないのか.
docker-compose logs
したら
これでてきたので今日のlogを抜粋してみました.
gistad8a7673f6162b0a6abe1060094c4c53
見てみると
Error grabbing logs: unexpected EOF
というのが気になる.予想外のEOF
どうしたら治るんでしょうか
MySQLの権限を変えた.
cureseven:mysql cureseven$ sudo chown -R _mysql /usr/local/var/mysql
Password:
cureseven:mysql cureseven$ sudo chmod -R o+rwx /usr/local/var/mysql
rails serverで立ち上げたコンソールに
SyntaxError (/Users/cureseven/ruby-workspace/ruby-teamLab/ruby-teamlab/app/controllers/product_controller.rb:5: syntax error, unexpected end-of-input, expecting keyword_end):
とあった
product_controller.rbのクラスにendがなかった
結局MySQLが悪かったんじゃなくて,ただendを書き忘れていただけだった.
コントローラを作ったがviewアクションが実行されずにshowが実行されてしまったので,自分でアクション作る場合はコントローラの全ての機能を入れずにonly:で必要な機能だけ入れると良さそう.
解決した. 詳細は明日詳しく書く.