我正在使用带有数据库Mongodb的rails。 我正在使用设计。 Devise有模型名称user。用户的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保存在其中?
答案 0 :(得分:1)
您显示的代码仅包含个人信息字段,如出生日期等。我想最简单的解决方案是将它们放在User
类中,并使用内置的设计操作(例如devise/registrations#edit
)更改它们,这些操作将更改应用于current_user
作为默认值。 / p>
或者,如果您想将Employee作为单独的类,您可以尝试在Employee
类中嵌入User
,如下所示:
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
。