前提・実現したいこと
deviseを使いnickname,email,passwordをusersテーブルに登録可能です。
user.idに紐づくprofilesテーブルでログイン中のuserが姓名、姓名かな、生年月日、自己紹介コメント、アバター写真を、1度だけ登録できるようにしたい。
現状、newアクションで何度もログインユーザーがprofileレコードを作成できてしまい、一つのユーザーに複数のプロフィール情報が登録されます。
if文でfindメソッドprofile.idが付与されている場合にrender 'edit' それ以外はcreateで初回のプロフィール登録ができればと考えていました。
発生している問題・エラーメッセージ
[![Image from Gyazo](https://i.gyazo.com/afefbca1229bb8791216f0b42265704e.png)](https://gyazo.com/afefbca1229bb8791216f0b42265704e)
該当のソースコード
ruby
1class ProfilesController < ApplicationController 2 def index 3 end 4 5 def new 6 @profile = Profile.new 7 if @profile.find(params[:id]) 8 render 'edit' 9 else 10 render 'create' 11 end 12 end 13 14 def create 15 @profile = Profile.new(profile_params) 16 if @profile.save! 17 redirect_to root_path 18 else 19 render 'new' 20 end 21 end 22 23 def show 24 end 25 26 def edit 27 end 28 29 def update 30 end 31 32 private 33 def profile_params 34 params.require(:profile).permit(:family_name, :first_name, :family_name_kana, :first_name_kana, :birth_year, :birth_month, :birth_day, :introduction, :avatar).merge(user_id: current_user.id) 35 end 36end 37 38
試したこと
上記のコードでnewアクションに対してif文を用いて何かできないか試していました
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
初めての投稿になりますので、必要情報が不足してましたらコメントくださいますと幸いです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。