-1

認証のための工夫があり、ユーザーを次のように作成するとき

curl -H 'Content-Type: application/json' -H 'Accept: application/json' -X POST htt://localhost:3000/users.json -d "{'user' : { 'username' : 'sample @example.com', 'password' : 'password', 'password_confirmation' : 'password' }}"

上記のリクエストに対するレスポンスは

{"user":{"authentication_token":"uwAqF4SG8kPirxWN35yp", "username":"sample@example.com"}}

しかし、私は応答が欲しい

{"New user created successfully"}

必要な応答を得るためにどのように変更できますか? 前もって感謝します。

アップデート

登録コントローラーの作成方法は次のとおりですが、あなたが言ったようにするにはどうすればよいですか

build_resource

            if resource.save
                if resource.active_for_authentication?
                    set_flash_message :notice, :signed_up if is_navigational_format?
                    sign_in(resource_name, resource)
                    respond_with resource, :location => after_sign_up_path_for(resource)
                    else
                    set_flash_message :notice, :inactive_signed_up, :reason => inactive_reason(resource) if is_navigational_format?
                    expire_session_data_after_sign_in!
                    respond_with resource, :location => after_inactive_sign_up_path_for(resource)
                end
                else
                clean_up_passwords(resource)
                respond_with_navigational(resource) { render_with_scope :new }
            end
4

2 に答える 2

1

あなたの更新とtw airballによる答えに基づいて、コードは次のようになります

respond_to do |format|
  if resource.save
    if resource.active_for_authentication?
      set_flash_message :notice, :signed_up if is_navigational_format?
      sign_in(resource_name, resource)
      format.html { respond_with resource, :location => after_sign_up_path_for(resource) }
    else
      set_flash_message :notice, :inactive_signed_up, :reason => inactive_reason(resource) if is_navigational_format?
      expire_session_data_after_sign_in!
      format.html { respond_with resource, :location => after_inactive_sign_up_path_for(resource) }
    end
    format.json { render json: flash } # respond with the standard devise flash message
  else
    clean_up_passwords(resource)
    format.html { respond_with_navigational(resource) { render_with_scope :new } }
    format.json { render json: "User not created" }
  end
end
于 2012-11-24T16:17:45.517 に答える
1

デフォルトの動作は正しい応答だと思います.JSONリクエストに対して、新しく(正常に)作成されたユーザーのJSONオブジェクトを返しています。

とにかく、この投稿を見てください:デバイス登録コントローラーのオーバーライド

次のような作成アクションの登録コントローラーをオーバーライドする必要があります。

def create 
    #custom logic here
    respond_to do |format|
      format.html #some logic here
      format.json {"New user created successfully"}
    end
end
于 2012-11-24T10:49:15.683 に答える