1

在我的用户模型中,我有

  belongs_to :admin_creator, foreign_key: :created_by_user_id, class_name: "User"

在我的创建控制器动作中,我有......

def create
    @user = User.new(user_create_params)
    @user.created_by_user_id = current_user.id
    @user.status_code = 'P' #set status code to pending

    begin
      @user.save!
      render json: "User #{@user.email} added", status: :created 
    rescue StandardError => e
      render json: @user.errors.full_messages, status: :unprocessable_entity 
    end

  end

如何将我的代码重铸为将模型关联用于将成为 admin_creator 的“current_user”?

调用 create 操作时,current_user 是添加另一个(子)用户帐户的当前管理员用户。我认为这将是... @user = current_user.users.build(user_create_params) 或类似的

4

1 回答 1

1

has_many像这样向User模型添加一个:

has_many :admin_children, foreign_key: :created_by_user_id, class_name: "User"

然后你可以这样做:

current_user.admin_children.create(user_create_params)
于 2013-09-27T03:11:38.020 回答