4

Rails の ActiveResource 機能を介して、他の Rails アプリの認証システムとして機能する Rails アプリに取り組んでいます。

認証アプリには、 という ActiveRecord モデルがありUserます。クライアント アプリには、 と呼ばれる ActiveResource モデルがありUserます。user.saveクライアントアプリでは、次のようなことができ、XML over HTTP を使用して PUT 操作を実行できることを知っています。

Userしかし、クライアント アプリのモデルhas_many :contactsまたはそのようなもの (contactsクライアント アプリの ActiveRecord モデル)に入れたい場合はどうすればよいでしょうか? Contact次に、 some に属するすべての を取得するようなことをしたいと思いUserます。

それは可能ですか?

(似たような質問があったことに気付きましたが、あまり回答がありませんでした。)

4

2 に答える 2

5

短い答え:いいえ。has_manybelongs_to、 に関連するクラスhas_and_belongs_to_manyは ActiveRecord に存在し、SQL クエリを作成して関連付けを機能させます。

とはいえ、関連付けがあるように見せることはできますが、独自のメソッドを作成するだけで済みます。あなたがリンクしたその質問に対する賛成票の答えはどれでしたか。

したがって、Contact モデルに、user_idまたは ActiveResource モデルに渡す必要がある任意のキーの列を追加するUser.findと、次のように関連付けコントラクトの一部にすることができます。

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、それがその要点です。

于 2009-02-01T17:56:10.597 に答える
3

この質問は古くからありますが、私は最近これに出くわしました:

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

投稿から:

アソシエーションの基本サポート:has_many、has_one、belongs_toをActiveResourceモデルで使用できるようになりました。

Rails 4.0から削除されたとしても、ActiveResourceを再検討する必要があるかもしれない、投稿に記載されている他のいくつかの改善点があります。

于 2013-02-25T10:48:26.063 に答える