0

我正在使用带有数据库 Mongodb 的 Rails。我正在使用设计。设计有模型名称用户。用户的 id 在

:id => current_user.id

我想制作一个模型,这样当从表单中保存数据时,当前用户的 id 也将保存在集合中。我的员工的模型是

 class Employee
  include Mongoid::Document
  field :first_name, type: String
  field :middle_name, type: String
  field :last_name, type: String
  field :otherid, type: String
  field :licennum, type: String
  field :citizennum, type: String
  field :licenexp, type: String
  field :gender, type: String
   field :state, type: String
  field :marital_status, type: String
  field :country, type: String
  field :birthdate, type: String
  field :nickname, type: String
  field :description, type: String
  validates_presence_of :first_name

{ }

end

我应该在大括号内放什么,这样当从该模型保存数据时,它也会将当前用户 ID 保存在其中?

4

1 回答 1

1

您显示的代码仅包含个人信息字段,例如出生日期等。我想最简单的解决方案是将它们放在User类中,并使用内置的设计操作来更改它们,例如devise/registrations#edit,它将更改应用current_user为默认值。

或者,如果您想将 Employee 保留为单独的类,您可以尝试嵌入EmployeeUser类中,如下所示:

class User 
  include Mongoid::Document

  embeds_one :employee
  (...)

class Employee
  include Mongoid::Document

  embedded_in :user

在这种情况下,您将在控制器级别设置关系,例如:

class EmployeesController < ApplicationController

  def create
    current_user.create_employee(params[:employee])
  end

创建后,您可以从 Employee 类访问用户的 ID 作为user.id.

于 2012-10-01T08:58:24.250 回答