※本サイトで紹介している商品・サービス等の外部リンクには、アフィリエイト広告が含まれる場合があります。
プロフィールを作成する
前回までで、プロフィールのフォームを作成
性別はセレクトボックスにて実装した
今回は、作ったフォームから、実際にプロフィールを作成する
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
current_user
の、空の@profile
をbuild
(作成)するprofile_params
で定義した保存対象を、@profile
に渡すif @profile.save
できたら、プロフィールページ(profile_path
)へredirect_to
する- 「プロフィール更新!」と
notice:
する else
なら、「更新できませんでした」とerror
を表示させる:edit
のviewをrender
(表示)する
railsのcontrollerにおいて、やっていることは大体同じになる
更新内容が保存されているか確認したいが、現状まだviewに反映されない
なので、コンソール画面で確認してみる
User.first
で自分のユーザー情報を取得し、User.first.profile
を実行する
内容がちゃんと更新されている
gender
は「1」で保存されているが、ActiveRecordが「female
」で表示してくれている
#DAY23