2014-12-14 4 views
1

내 레일 어플리케이션에 acts_as_follower를 사용하여 사용자가 책을 팔로우 할 수 있습니다. 내 컨트롤러는 아래와 같습니다. 또한 current_user 메서드가 있습니다.레일 : json 응답에 추가 필드를 포함하는 방법

페이지 응답에 추가 필드 "isFolowing"을 추가하고자합니다. 이것은 현재 사용자가 특정 페이지를 따르고 있는지 확인하는 것입니다. acts_as_follower gem은 user.following? (book) 메소드를 제공하여 사용자가 특정 책을 팔로우하고 있는지 확인합니다.

class BooksController < ApplicationController 
    def index 
     @books=Book.all 
     render json: @books 
    end 
end 
+0

당신이 isFollowing을하려는 경우, 예약 클래스의 방법이 필요합니다 이에 대한 응답으로 json : {isFollowing : current_user.isFollowing? (book)}을 렌더링하십시오. – Saravanan

+0

Saravanan, 나는보고 싶다 색인 액션 응답에있는 각각의 책에 대해 – Kallan

답변

2

내가 생각하는 응답이 추가 필드 "isFollowing"를 추가 제발 도와주세요, 당신은

def attributes_with_following_flag(user) 
    as_json.merge({is_following: user.is_following(this)}) 
end 

And in controller, 

render json: @books.collect{|b| b.attributes_with_following_flag(current_user)} 
+0

컨트롤러 메서드에서, 그것은'user' 대신에'current_user'이어야한다. –

+0

@prakashMurthy 감사, 편집 – Saravanan

+0

답장 @Saravanan을 위해 많은 감사. 하지만 주 (Actor)가 제공하는 user.following (book) 메소드는 컨트롤러에서 호출하고 모델 내부에서 호출하지 않으면 작동합니다. 어쨌든 우리는 "조인"및 "포함"을 사용하여이 작업을 수행 할 수 있습니까 – Kallan

관련 문제