我试图让我的rails应用程序在通过设计注册后重定向到edit_profile_path
,但是我在尝试解决问题时遇到了严重问题。我在这里花了四个小时试图寻找解决方案,但似乎无法找到问题。
我当前的路线.rb:
resources :users, :only => [:index] do
member do
get :favourite_users, :favourited_users
end
resources :posts
resources :profiles, only: [:show, :edit]
end
我的RegistrationsController.rb
class RegistrationsController < Devise::RegistrationsController
protected
def after_sign_up_path_for(resource)
edit_profile_path(resource)
end
end
我的个人资料/ edit.html.erb:
class User < ActiveRecord::Base
before_create :build_profile #creates profile at user registration
has_one :profile, dependent: :destroy
accepts_nested_attributes_for :profile
end
我的个人资料.rb
class Profile < ActiveRecord::Base
belongs_to :user
def name
first_name + " " + last_name[0]
end
end
我的个人资料控制器.rb
class ProfilesController < ApplicationController
def new
@profile = Profile.new
end
def show
end
def profile
end
def edit
@profile = current_user.profile
end
end
我尽可能多地尝试了解决方案但我似乎得到的只是:
undefined method `profile_path' for #<#<Class:0xb50b8618>:0xb50abe54>
或者如果我从RegistrationsController中的edit_profile_path(资源)中删除(资源):
No route matches {:action=>"edit", :controller=>"profiles"} missing required keys: [:id]
非常感谢任何帮助!
答案 0 :(得分:0)
您是否尝试过从控制台运行以下内容:
rake routes
这将输出您的应用知道的所有路线。我希望我能正确阅读你的路线文件(很难看到没有格式化),但是它是一个嵌套的路线,我想你实际上想要使用
edit_user_profile_path(resource)