LoginSignup
0
0

More than 5 years have passed since last update.

Udemyのコース「【作りながら覚える!】 Ruby on Rails を用いたウェブ開発(Airbnbを作ろう!) 」を学ぶ。part 3-6,7

Posted at

Udemyのこちらのコースを受けながら、疑問に思ったこと、調べた結果、大事なことをまとめていきます。

part3-6 プロフィール内容を編集するページを作成

user/edit に飛ぶとこのような画面になる。
スクリーンショット 2017-11-14 13.58.05.png
現在のパスワードを入れないと変更できない仕様なので、これは面倒臭いということで変更する。

「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のコードが間違っててもエラーは出ないから注意です。

自己課題

  • 情報が登録されていたらチェックマークが入るようにする。
0
0
4

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0