2009-02-01 4 views
4

레일스의 액티브 리 소스 기능을 통해 다른 레일스 애플리케이션의 인증 시스템으로 사용될 레일스 애플리케이션을 개발 중입니다.ActiveResource 모델을 ActiveRecord 모델과 통합 할 수 있습니까?

인증 앱의 ActiveRecord 모델은 User입니다. 클라이언트 응용 프로그램에는 User이라는 ActiveResource 모델이 있습니다. 나는 클라이언트 응용 프로그램에서 user.save과 같은 작업을 수행 할 수 있으며 HTTP를 통해 XML을 사용하여 PUT 작업을 수행한다는 것을 알고 있습니다.

그러나 나는 (클라이언트 응용 프로그램에서 액티브 모델 인 contacts) 그런 내 클라이언트 응용 프로그램의 User 모델 has_many :contacts 또는 무언가에 넣고 싶다면? 그렇다면 User에 속하는 모든 Contact을 얻는 것과 같은 일을하고 싶습니다.

그럴 수 있습니까?

은 (내가 similar question는 질문을 받았다 것으로 나타났습니다하지만, 많은 응답이 없었다.)

답변

5

짧은 대답 : 예. has_many, belongs_to, has_and_belongs_to_many에 관련된 클래스는 ActiveRecord에 살며 SQL 쿼리를 작성하여 연결을 작동시킵니다.

그렇다면 연관성이있는 것처럼 보이게 만들 수 있습니다. 자신 만의 방법을 작성하면됩니다. 당신이 연결 한 그 질문에 대해 득표 한 대답은 어느 것입니까?

그래서, user_id입니다 상대 모델에 열을 추가하거나 키는 무엇이든 당신은 당신의 User.find ActiveResource 모델에 통과해야하고이 같은 협회의 계약의 일부 수 :

class User < ActiveResource::Base 
    # boilerplate ActiveResource url stuff 

    def contacts 
    Contact.find(:all, :conditions => { :user_id => self.id }) 
    end 
end 

class Contact < ActiveRecord::Model 
    def user 
    User.find_by_user_id(self.user_id) 
    end 
end 

이 훨씬 더있다 당신은 has_many에서 무료로 얻을 수 있지만 그게 그 핵심입니다.

3

이 질문은 고대이지만, 최근이 가로 질러 : 포스트에서

http://yetimedia.tumblr.com/post/35233051627/activeresource-is-dead-long-live-activeresource

:

협회에 대한 기본 지원 : has_many, has_one, 지금 사용할 수 있습니다 belongs_to ActiveResource 모델.

게시판에 Rails 4.0에서 제거 되었더라도 ActiveResource에 대한 재검토가 필요할 수도있는 몇 가지 개선 사항이 있습니다.

+0

ActiveResource 4.0부터 ActiveResource에서 ActiveRecord 로의 연결이 작동하지 않는 것처럼 보입니다. 나는 이것이 버그인지 또는 의도 된 기능인지는 모르지만 ... 적어도 나는 그것을 얻을 수 없다. – Smar

+0

Tumblr 소식이 삭제되어 불행히도 링크가 404 페이지로 이동합니다. – tomsabin

+0

오프라인으로 전환하기 전에 페이지가 보관되었습니다. https://web.archive.org/web/20130402191732/http://yetimedia.tumblr.com/post/35233051627/activeresource-is-dead-long-live-activeresource –