Railsでハマルやつ


 を使いたい

何をしたいか?

Railsでhtmlの特殊文字である&nbspを使いたい。

対策

String#html_safe もしくは、raw ヘルパーを利用する。

" ".html_safe raw(" ")

secret_key_base設定漏れで謎のエラー

エラー

  • An unhandled lowlevel error occurred. The application logs may have details.

対応

secret_key_base が設定されていないことが原因、ちゃんと値が設定されているかを確認する
値は、bundle exec rake secret で作ることができる。
生成された値を設定ファイル等に設定しておく

assetsの配信設定

症状

  • Railsをproductionで起動したとき、css, jsが読み込めない

対応

config/environments/production.rbconfig.public_file_server.enabledtrue に設定する

ただし、本来はpublic/配下のstaticなファイルをrailsに配信させるのはあまりおすすめの設定ではないので、nginx等のwebサーバーやcdnから配信するほうが良い

Rails5以降だと上記の設定だけど、Rails4までだと config.serve_static_files という設定項目だった

Rails serverコマンド強制停止させる

症状

  • 重たいクエリーや重たい処理をやっていて rails s の応答がなくなった。
  • 処理は行っていそうだけど、長時間待たされる可能性がある

対応

プロセス番号を調べてから kill コマンドで停止させるというのが一般的だけど、もう少し簡単に行う方法です。
一度サスペンドさせてから、バックグランドで動かして、killコマンドで強制停止させると簡単です。
くれぐれも、-9 は乱用しないようにしましょう。

# Ctrl + z
# サスペンドされる
 % bg
[1]  + continued  bundle exec rails s
 % kill -9 %1
[1]  + killed     bundle exec rails s