2014-12-02 2 views
1

자산 관리를위한 API가 있는데, Her을 사용하는 API 클라이언트 인 Rails 앱을 만들고 있지만 인증도 처리합니다.그녀와 Active Record 모델을 연관시키는 방법은 무엇입니까?

사용자 활성 레코드 모델이 있습니다. 그녀의 모델과 액티브 레코드 모델을 어떻게 연관시킬 수 있습니까?

코드는 이것이다 : 내가 예약에 대한 사용자를 얻을하려고하면 내가 예약 객체에 저장된 id 필드를 얻고, 현재

class Resource 
    include Her::Model 
    has_many :bookings 
    parse_root_in_json true, format: :active_model_serializers 
end 

class Booking 
    include Her::Model 
    belongs_to :User 
    belongs_to :Resource 
    parse_root_in_json true, format: :active_model_serializers 
end 

class User < ActiveRecord::Base 
    has_many :Bookings 
end 

, 사용자 개체 내가 필요가있다.

irb(main):067:0* Resource.find(1).bookings.where(status: 'all').first.user 
=> "1" 
+0

'그녀'가 무엇인지 전혀 모르는 다른 독자들에게 : '그녀'는 예전의 고대 ActiveResource를 대체합니다. 링크 : https://github.com/remiprev/her 전에는 들어 보지 못했지만 위대한 보석처럼 보입니다. 이 질문에 조금 더 설명하는 데 도움이 될 것입니다, 나는 downvote을 일으킨 것 같아요? 의도적으로'belongs_to'에서 대문자'User'와'Resource'가 있습니까? – nathanvda

답변

2

회원님이 있지만, 대신 Booking API 호출에서 반환에 user 필드를 가진 가능성이있는 경우, user_id을 호출 한 다음 같은 것을 할 수 있는지 :

def user 
    @user ||= User.find(self.user_id) 
end 

을 당신이 만약 API를 변경할 수는 없지만 거의 동일하게 수행 할 수 있지만 이름이 다소 이상하게 보일 수 있습니다. 나는 주어진 booking에 대해 한 번만 특정 사용자를 조회하기 위해 ||=을 사용합니다.

+0

감사합니다 !! 이 일했다! 그냥 작동하도록 int로 변환해야합니다 (self.user_id.to_i). –

관련 문제