【rails】プロフィールを作成する

※本サイトで紹介している商品・サービス等の外部リンクには、アフィリエイト広告が含まれる場合があります。

プロフィールを作成する

前回までで、プロフィールのフォームを作成

性別はセレクトボックスにて実装した

今回は、作ったフォームから、実際にプロフィールを作成する


保存する対象を定義する

app/controllers/profiles_controller.rbを開く

privateで保存を許可する対象を定義する

  private
  def profile_params
    params.require(:profile).permit(
      :nickname,
      :introduction,
      :gender,
      :birthday,
      :subscribed
    )
  end


プロフィールの作成について定義する

上記、privateの上に書き加える

  def update
    @profile = current_user.build_profile(profile_params)
    if @profile.save
      redirect_to profile_path, notice: 'プロフィールを更新!'
    else
      flash.now[:error] = '更新できませんでした'
      render :edit
    end
  end
  1. current_userの、空の@profilebuild(作成)する
  2. profile_paramsで定義した保存対象を、@profileに渡す
  3. if @profile.saveできたら、プロフィールページ(profile_path)へredirect_toする
  4. 「プロフィール更新!」とnotice:する
  5. elseなら、「更新できませんでした」とerrorを表示させる
  6. :editのviewをrender(表示)する

railsのcontrollerにおいて、やっていることは大体同じになる


保存されているか確認

更新内容が保存されているか確認したいが、現状まだviewに反映されない

なので、コンソール画面で確認してみる

User.firstで自分のユーザー情報を取得し、User.first.profileを実行する

内容がちゃんと更新されている

genderは「1」で保存されているが、ActiveRecordが「female」で表示してくれている

#DAY23