ロイの奮闘記録

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

#56 Eventsの検索機能実装&Eventsの項目適正化

#56 8/22 Eventsの検索機能実装

 

https://qiita.com/mochikichi321/items/5c9630c5d87b47130942

名前だけなら、このブログでスムーズに実装出来てしまった。

 

※コントローラー内での実装もあるので、

root以外で表示させるなら、コントローラー側の実装もおそらく必要。

(staticControllerだけでなく、EventsControllerでも実装がいる。)

 

EventsController側でも検索機能を実装 

まずはEvents/indexを作成する。

MVCそれぞれ変更したらノーミスで出来た。

 

events/newのテンプレートも実装する

events/newを作成しようとしたが、

イベントはユーザーに紐付いているから、ユーザー画面で行うほうがいいかも

→routesの/events/new廃止 static_page/homeで実装

 

※スラッシュのエラー

マイページ(/users)→eventsのindex("/events")の時にエラーになる

'/events' の/が抜けていたため。

 

投稿の項目を増やす

HTMLのinputタグなどを使用

https://www.tagindex.com/html5/form/input_date.html

 

 

増やした項目を、投稿に反映させる

おそらくまずモデルにカラムを追加していく

以下が方法。https://qiita.com/ryosuketter/items/1aba45161bfffefed68b

$ rails g migration Addカラム名Toテーブル名 カラム名:データ型

$ rails g migration AddDateToEvents date:date

$rails g migration AddPlaceToEvents date:string

 

※カラムの種類 https://qiita.com/Kaisyou/items/07840398e60cedcd2f0f 

 

次にform_forを用いて移動させていく

→form_forを用いたHTMLタグが存在した...

https://www.pikawaka.com/rails/form_for

 

これ用いて、時間・選択2つ(場所と飲み方)を実装

次に実際にデータが移行されているか確認・実装

---

どうやらSQLにカラムが追加されていないっぽい

Rails でのDB確認

https://qiita.com/kouuuki/items/b6e1a4318d8feee24c9f

SQLには入っている。

f:id:roi_techs:20190823084330p:plain

 

もう一度formforの理解から。

https://morizyun.github.io/ruby/rails-function-form-helper.html

 

まずはDBのエラー対応

1.rake db:migrate reset
2.rails db:migrate

 

1のエラー

1.1開発環境でresetさせないぜ。dbのやつ整理した

rails db:environment:set RAILS_ENV=development

https://more-caffeine.hatenablog.com/entry/2018/03/02/155815

 

1.2 indexなんて、無いよ。エラー

rails のdbのとこで、#かかない(add indexは悪いことしてる)

 

ActiveRecord::StatementInvalid: SQLite3::SQLException: table events has no column named date: CREATE INDEX "index_events_on_date" ON "events"

  

また違うエラーが出た

duplicate column name: date: ALTER TABLE "events" ADD "date" varchar

カラムが重複しとるで! それはアカンで!っていうエラー 

こういうときは migration ファイルを空にすればえーで!(2019...のadd_columnの行を#にする)

 

※神記事

https://qiita.com/niyomong/items/22fa60657ea8ee478647

 

これでDB解決。