ロイの奮闘記録

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

#64 userの登録項目(parameter)を増やす2 ~StrongParameter~

#64 9/9 9/17 9/23 userの登録項目(parameter)を増やす2 ~StrongParameter~

 

■StrongParameterとは?

 https://qiita.com/mochio/items/45b9172a50a6ebb0bee0

 

・ Railsリクエストパラメータを検証するための仕組み

・メソッドで管理

ホワイトリスト形式

 ---

2.次は年齢・性別・都道府県・プロフィールコメントの項目を登録出来るか検証

 

a.Modelをいじり、DBを変更する

id,name,email,sex,age,content,img,title,residence,password,password_digest

が必要なカラム

 

uid:int

gender:string(選択形式)

birthday :date(選択形式)

content:text

の型

 

・生年月日から年齢の箇所は 

rails 生年月日 年齢”などで検索

 

1. rails g migration AddColumnsToUsers uid:integer gender:string birthday:date content:text だと成功する。

”id”がだめみたい。

 

 2.時間が違くても、同じ名前のカラム変更は、

強制リプレイス(--force)か、変更なし(--skip)。のどちらかになる

 

b.View自体には新規追加なく、registration/new.html.erbに項目を増やす。

https://www.sejuku.net/blog/13163

 

1.uidは自動で作成されるもの

1'.name:string→自由記載 text_field

2.gender:string→選択制 select

3.birthday:date→日時選択性 date_select

4.context:text→自由記述 textarea

 

■htmlをいじる

・select

<%= f.select :gender, [["男性", "male"], ["女性", "female"]] ,class:"form-control"%> 

https://freesworder.net/rails-form_for-select/

 

genderが表示されていない。

→1.そもそもDBに入っていないのか

2.出力されていないのか

 

 

 

 

c.Controllerをいじり、引数を入れる

 →application_controllerでいじるのかな

 

 

年齢で使えるかも 

https://qiita.com/yaboojp/items/775a924ee8c3ae0a6d21

<%== sprintf(
 f.date_select(:birthday, :use_month_numbers=>true, :date_separator => '%s', :start_year=>1930, :end_year => Time.now.year, :default =>'1990-1-1'.to_date), '年','月') + '日生まれ' %>

 

同じような複数カラムを扱っている

https://blog.codecamp.jp/rails_text_12

 

※name のカラム消してしまったので、再度作る。

①既存のカラムを削除する

rails destroy migration AddColumnsToUsers

②新しくカラムを追加(上記と同じ)

rails g migration AddColumnsToUsers uid:integer name:string gender:integer birthday:date content:text

rails db:migrate:resetとrake db:seedで、migrateリセットとrake

以上で再度生成完了。ログインも可能。