我在设计方面遇到了一些问题。我已经在我的应用中添加了一个用户表(设计),一个约会表和一个配置文件表。一个用户应该有很多约会,并且有一个配置文件。
问题是我无法显示该用户的个人资料。它告诉我没有路线匹配[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
答案 0 :(得分:0)
您尝试使用资源丰富的路线但尚未在控制器中执行显示操作。添加show动作并从params @ profile.id
中查找用户您实际上是重定向到您在配置文件控制器中没有的操作。