0
私はdeviseにいくつかの問題があります。私はユーザーテーブル(devise)、予定表、プロフィールテーブルを私のアプリケーションに追加しました。 1人のユーザーは、多くの予定を持ち、1つのプロファイルを持つ必要があります。現在のユーザーのユーザープロフィールは表示されません
問題は、そのユーザーのプロファイルを表示できないことです。 [GET] "/ profile/1"と一致する経路がないことを伝えます
どこが間違っているのでしょうか?
routes.rbを
Rails.application.routes.draw do
devise_for :users
resources :profiles
resources :appointments
root 'page#home'
get 'page/testimonials'
get '/signedinuserprofile' => 'profiles#signedinuserprofile'
#get 'page/home'
プロファイルコントローラ:
class ProfilesController < ApplicationController
before_action :set_profile, only: [:show, :edit, :update, :destroy]
def index
@profiles = Profile.all
end
def signedinuserprofile
profile = Profile.find_by_user_id(current_user.id)
if profile.nil?
redirect_to "/profile/new"
else
@profile = Profile.find_by_user_id(current_user.id)
redirect_to "/profile/#{@profile.id}"
end
end
アプリケーション・コントローラ:
class ApplicationController < ActionController::Base
protect_from_forgery with: :exception
def after_sign_in_path_for(resource)
"/signedinuserprofile"
end
end
セッションコントローラ:
class SessionsController < Devise::SessionsController
#after_sign_in_path_for is called by devise
def after_sign_in_path_for(user)
"/signedinuserprofile" # here I provide the path for the user's profile
end
end
ありがとう – OkiGirl