Ruby on rails 控制器和视图中的Rails关联混乱

Ruby on rails 控制器和视图中的Rails关联混乱,ruby-on-rails,Ruby On Rails,我正在rails中使用designe进行用户身份验证。 我的rails应用程序中有两个型号:- class User < ActiveRecord::Base devise :database_authenticatable, :registerable, :recoverable, :rememberable, :trackable, :validatable has_one :userdetails end 我在“userdetails”表中创建了一个与“

我正在rails中使用designe进行用户身份验证。 我的rails应用程序中有两个型号:-

class User < ActiveRecord::Base

   devise :database_authenticatable, :registerable,
      :recoverable, :rememberable, :trackable, :validatable

   has_one :userdetails
end
我在“userdetails”表中创建了一个与“users”表中的id列关联的user\u id列

但是当我更新userdetail的值时,user_id字段仍然为空

我有点困惑,为了设置当前登录用户的用户id,我必须在“Controller”、“view”和“Routes.rb”中写些什么。
由于我是RoR和stackoverflow的新手,如果我没有提供任何信息,请建议我。

为用户实例化UserDetails记录的正确方法是:

def new
   @userdetail = current_user.userdetails.build
end
您还需要对用户进行身份验证,以确保他已登录,这也使
当前用户
对象对您可用。在您的
UserDetailsController

before_action :authenticate_user!
创建
操作中,您必须遵循相同的原则:

def create
    @userdetail = current_user.userdetails.build(user_details_params)
    if @userdetail.save
     #...rest of the code
    end
end

userdetail
重命名为
profile
,这是一个词,只是一个建议。你不会像现在这样混淆单数和复数:
有一个:复数形式的东西,这很奇怪。谢谢你的建议
before_action :authenticate_user!
def create
    @userdetail = current_user.userdetails.build(user_details_params)
    if @userdetail.save
     #...rest of the code
    end
end