【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
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