kyopa’s blog

自分用プログラミングアウトプット

昨日の機能を振り返る

sign_upインスタンス変数である@targetがあるビューにとべない。

 

原因

 

sign_upした

 

2user/showに飛ぶ

 

3user/showは@targetの情報が記載されているのでエラー

 

 

解決方法

 

sign in後 @targetをsaveした後にuser/showを表示させるように工程をかえる

 

 

def after_sign_in_path_for(resource)
  target = @user.targets.build(target_params)
  if target.save
    user_path(resource.id)
  else
    flash[:notice] = ""
    new_target_path
  end
end

 

これでtargetがセーブされた後にuser/showにとばすことができました。

 

後deviseのnoticeは、アカウント登録しましたと表示される

 

Userはバリテーションをかけていて

@targetはバリテーションではなくtarget_newにとばすしようにした

 

 

userとtarget 両方入力   user/showに移動

user情報未入力target情報入力 userのバリテーションがききsign_upの情報に戻る

user情報入力target情報未入力 target/newの画面に移動