2017-05-11 4 views
0

저는이 두 테이블 (사용자, 계정)이 있습니다. 사용자에게 인증 키가 포함되어 있습니다. 계정에 계정 목록이 있습니다.Rails API에서 올바른 필드를 반환하는 방법은 무엇입니까?

인증 키가 맞으면 사용자 계정 목록을 가져 오려고합니다.

그래서 컨트롤러에 내가 가진 -

def show 
    @user = User.where(authentication_token: params[:authentication_token]) 
    render json: @user.as_json(
      only: [:email, :id, :authentication_token] 
     ), 
     status: :created 
end 

이 단지 사용자 정보를 반환합니다. 사용자가 해당 Authentication_token에 있는지 먼저 확인하고 계정 테이블에서 UserID를 사용하여 계정 목록을 가져올 수 있도록 어떻게 편집합니까?

+0

'@의 user.accounts' 또는 무언가를. –

답변

0

authentication_token이 아니고 인 경우 원하는 동작은 무엇입니까? 예외를 제기합니까? 리디렉션 어딘가? 플래시 메시지를 표시 하시겠습니까? ...

당신은, 예를 들어, 같은 것을 할 수있는 : 그런

def show 
    if authenticated_user 
    render json: authenticated_user.accounts.as_json(
      only: [:id, :foo, :bar] 
      ), 
      status: :ok 
    else 
    render json: { errors: { authentication_token: 'Invalid' } }, 
      status: :unauthorized 
    end 
end 

private 

def authenticated_user 
    @authenticated_user ||= User.find_by(
    authentication_token: params[:authentication_token] 
) 
end 
+0

이렇게하는 동안 정의되지 않은 메소드 'accounts'가 계속 나타납니다. accounts 테이블이 존재하고 authenticated_user도 정확합니다. – user2775042

+0

사용자는 'have_many' 계정을 가지고 있습니까? 그것이 내가 만든 가정이지만 원래의 게시물에서 이것을 분명히하지 않았습니다. –