我不知道为什么我会出现这种错误..我已经在之前的项目(简单的练习项目)中创建了一些嵌套资源但是我不知道为什么不起作用..
错误:
NoMethodError in UsersController#new (undefined method `userprofiles' for #<User:0x000000059c50e0>)
模型
user.rb
(belongs_to :userprofile
)user_profile.rb
(belongs_to :user
) routes.rb
resources :users do
resources :user_profiles
end
users_controller.rb
class UsersController < ApplicationController
before_action :authenticate_user!
before_action :set_userprofile, only: :new
def index
if current_user
@user = User.find_by_email(current_user.email)
redirect_to :action => "new"
end
end
def new
@user = User.find(current_user.id)
@user_profile = @user.userprofiles.new
end
private
def set_userprofile
@user = User.find(current_user.id)
end
end
答案 0 :(得分:1)
用户模型
class User < ActiveRecord::Base
has_many :user_profiles
end
用户个人资料模型
class UserProfile < ActiveRecord::Base
belongs_to :user
end
在控制器中
def new
...
@user_profile = @user.user_profiles.new
end
它应该是这样的