Udemyのこちらのコースを受けながら、疑問に思ったこと、調べた結果、大事なことをまとめていきます。
part3-6 プロフィール内容を編集するページを作成
user/edit に飛ぶとこのような画面になる。
現在のパスワードを入れないと変更できない仕様なので、これは面倒臭いということで変更する。
「devise edit without password」でググってみる。
editをコピペし、モデルを追加。
rails g migration AddExtraFieldsToUser phone_number:string description:string
とすると、Userデータベースに新しいカラムを追加できる。
入力しても保存されないとき。
ストロングパラメーターというのを使う。これは、簡単にいうとDBに値を入れ、不正を防ぐもの。
ここにストロングパラメーターのdeviseにおける導入方法がある。
class ApplicationController < ActionController::Base
before_action :configure_permitted_parameters, if: :devise_controller?
protected
def configure_permitted_parameters
devise_parameter_sanitizer.permit(:sign_up, keys: [:username])
end
end
上のコードがサンプル。今回は、このように変える。
class ApplicationController < ActionController::Base
before_action :configure_permitted_parameters, if: :devise_controller?
protected
def configure_permitted_parameters
devise_parameter_sanitizer.permit(:account_update, keys: [:name,:email,:phone_number,:description])
end
end
自己課題
- 上記をやる
- プロフィール編集ページをnavbarに追加。
part3-7 再びプロフィールページを編集
登録済み情報にチェックを入れる。
このコードをshow.html.erbの上に書く。
<script type="text/javascript">
$(function(){
<% if !(@user.email.blank?) %>
$("#ver-email").attr("class","verification-checked");
<% end %>
});
</script>
これは、emailに値があれば、verification-checkedというクラスを追加するということ。
javascriptのコードが間違っててもエラーは出ないから注意です。
自己課題
- 情報が登録されていたらチェックマークが入るようにする。