hiyoko-programingの日記

プログラミングを勉強したてのひよっ子。   エンジニア目指して勉強中。

業務システム開発完了

やっと終わった。

ずっとエラーが色々と出て、

本通りにやってるのになんで???

と思いながらも

なんとか完了した。

 

エラーの意味、

解消方法をしっかりと最後は考える結果となった。

 

よく出てくるのは、

Name Error  uninitialized constant SessionsController

 

直訳すれば、「コントローラーの定数が初期化されてないよ」

ということ。

 

なので、

することといえば、

 

・指摘の行のコードの打ち間違い。

・Class名の指定間違い。

MVCの関係性を考えて、

Viewを確認 → Controllerを確認 → Modelを確認

し、それぞれの動きの対応ができているかを確認。

 

結果的に、

私の場合は、

Modelの class HomeAddress < Address 

の後半が Address 

になってなかったことが原因だった。

 

いつになっても、MVCの関係をそれぞれ繋げて考えることが大切だと思った。

Ruby の正規表現

正規表現をModelsに書くことになったが、

暗号にしか見えない。

 

'アイウエオ' =~ /\A[\p{katakana}]+\z/ #=> 0
'あいうえお' =~ /\A[\p{katakana}]+\z/ #=> nil
'アイウエオあいうえお' =~ /\A[\p{katakana}]+\z/ #=> nil
'イロハニホヘトチリヌルヲ' =~ /\A[\p{katakana}]+\z/ #=> 0
'イロハニホヘトチリヌルヲワカヨタレソツネナラムウヰノオクヤマケフコエテアサキユメミシヱヒモセス' =~ /\A[\p{katakana}]+\z/ #=> 0
'イロハニホヘトチリヌルヲワカヨタレソツネナラム' =~ /\A[\p{katakana}]+\z/ #=> 0

なんのこっちゃ???

と定義を調べていくと、以下のような決まりのようだ。


30A1..30FA ; Katakana # Lo [90] KATAKANA LETTER SMALL A..KATAKANA LETTER VO
30FD..30FE ; Katakana # Lm [2] KATAKANA ITERATION MARK..KATAKANA VOICED ITERATION MARK
30FF ; Katakana # Lo KATAKANA DIGRAPH KOTO
31F0..31FF ; Katakana # Lo [16] KATAKANA LETTER SMALL KU..KATAKANA LETTER SMALL RO
32D0..32FE ; Katakana # So [47] CIRCLED KATAKANA A..CIRCLED KATAKANA WO
3300..3357 ; Katakana # So [88] SQUARE APAATO..SQUARE WATTO
FF66..FF6F ; Katakana # Lo [10] HALFWIDTH KATAKANA LETTER WO..HALFWIDTH KATAKANA LETTER SMALL TU
FF71..FF9D ; Katakana # Lo [45] HALFWIDTH KATAKANA LETTER A..HALFWIDTH KATAKANA LETTER N
1B000 ; Katakana # Lo KATAKANA LETTER ARCHAIC E

# Total code points: 300

 

◉30A1..30FA, 30FD..30FE, 30FFとは?

 

◉32D0..32FE

○付きのカタカナ

 

◉FF66..FF6F, FF71..FF9D

 

半角カタカナ

 

都度調べて書くしかなさそうだ。

bin/rails db:create エラー

エラー解決

bin/rails db:create を(2回目作成時)以下の

エラー。

 

could not translate host name "db" to address: Name does not resolve

これは、

db というホストが見つかりませんという意味。

 

 host: db を確認。

Railsからはdockerで設定したリンク(ホスト)が見えない、ということなので、環境変数を経由することにする。


例えば
docker-compose.ymlに次のように追加

environment:
  - DATABASE_HOST=db
  - DATABASE_PORT=5432


database.ymlに次のように追加

default: &default
  adapter: postgresql
  encoding: unicode
  host: <%= ENV.fetch('DATABASE_HOST') { 'localhost' } %>
  port: <%= ENV.fetch('DATABASE_PORT') { 5432 } %>
これで解決した!