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

次のようにモデルに ahas_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 に答える