ロイの奮闘記録

PdMをやってるロイの日記です。人のつながりを増やしたいと思いながら、社会と奮闘しています

#70 Eventsのカラム変更 カラム削除も

#70 10/9-12 Eventsのカラム変更

  

日程 e_date :date

時間 e_time :time

場所 e_place :string

楽しみ方 e_enjoy :string

文章 e_content :text

 

rails destroy migration AddColumnsToEventsで削除を行い、

rails g migration AddColumnsToEvents e_date:date e_time:time e_place:string e_enjoy:string e_content:text でDBを作り上げる。

 

エラー

ActiveRecord::NoEnvironmentInSchemaError: というエラーが出たら、

db:environment:setしたらOK

 

migrationすると、

contentとかが被っているよ。というエラー 

→e_を接頭につけることで解決(同じ名前のカラムはエラー!?)

 

DBが更新されていない。 

→何故

 

hash:ActiveSupport::HashWithIndifferentAccess

 

htmlを覗いて見ると、

文字列(新宿〜)で登録されている

 

DBは、文字列 stringで登録しているからそこは問題なし。

→ていうよりは、保存されていないこと自体がだめ!?

 

おそらく、DBの型と入力されている項目の型が違うことによる

(StrongParameterではない気がする)

 

 staticpagesに、問題があるかも

 

一つひとつの型違いというよりは、DBにそもそも保存されていない。

ことが問題

 

1.昔の_events.html.erbで記入しても、DBに保存されていない。

→DBのカラムや更新、もしくは他のcontrollerでミスっている可能性大

 

・paramsには入っている...

 

・DBのカラムを覗く

f:id:roi_techs:20191014124314p:plain

 

DBもたぶん間違っていないな。。

 

・コントローラー

event_controller.rbの、create

→間違えていない

 

form for ボタンを押したら、反映←ここでは!?

→formforも間違えていない

 

■小川さんアドバイスより解決

問題点は、events.rbのvalidateに、

e_content と しなければならない箇所を、昔のままcontentとして行っていた。

 

■解決方法 

 まずevents_controllerのcreateアクションにおいて、保存直前でbinding.pryを仕込みました。binding,pryで停止した状態で、コンソール上で @event.save! を実行してみました。

※!が付いているのは、エラーが発生した際にログを出したいのでコンソール上では!を付けて実行しました。
そうすると、conetntは必須入力だとエラーが表示されましたので、formのカラム名との不一致を疑いエラーの解消を行うことができました

 

・save! !(感嘆符)の使い方について

https://qiita.com/ozin/items/5968971c9d2b3ab0a84d