2016-08-25 4 views
-1

こんにちは私は問題があるか、それを行う方法がわかりません。私はREST APIを作成しました。 APIのためのusers_controllerコード。私は、新しいユーザーを作成したり、同じユーザー(ログイン)をテストしたときにデータベースに既に存在するようにしたい。データベース内の同じユーザーがエラーを返すとき。 助けてください:)API REST User Rails

module Api 
    module V1 

    class UsersController < ApplicationController # Api::BaseController 
     before_filter :authenticate_user!, except: [:create, :index] 

     respond_to :json 

     def index 
     #respond_with 

     respond_to do |format| 
      format.html {render text: "Your data was sucessfully loaded. Thanks"} 
      format.json { render text: User.last.to_json } 
     end 
     end 

     def show 
     respond_with User.find(params[:id]) 
     end 

     def create 
     respond_with User.create(login: params[:login], 
     email: params[:email], 
     password: params[:password], 
     spam: params[:spam], 
     male: params[:male], 
     facebookid: params[:facebookid] 
     ) 
     end 

     def update 
     respond_with User.update(params[:id], params[:users]) 
     end 

     def destroy 
     respond_with User.destroy(params[:id]) 
     end 
    end 
    end 
end 

答えて

0

以下のコードを使用してください。

def create 
    @user=User.find_by_login(params[:login]) 
    if @user.present? 
    render :status=>401, :json=> ["Login already present"] 
    else 
    respond_with User.create(login: params[:login], 
     email: params[:email], 
     password: params[:password], 
     spam: params[:spam], 
     male: params[:male], 
     facebookid: params[:facebookid] 
     ) 
     render :status=>401, :json=> ["Login already present"] 
    end 
end