目次 閉じる
プロフィールを作成する
前回までで、プロフィールのフォームを作成
性別はセレクトボックスにて実装した
今回は、作ったフォームから、実際にプロフィールを作成する
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
endcurrent_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
