0

私は3つのモデルを持っています

  • User
  • Journal
  • Post

これらについていくつかのことが推測できます

  • User has_many :journals
  • Journal has_many :posts

ユーザーが自分のサイトで他のユーザーや特定のジャーナルを購読できるようにしたいと考えています。

Subscriptionこのようなポリモーフィックモデルが必要だと考えています

class CreateSubscriptions < ActiveRecord::Migration
  def change
    create_table :subscriptions do |t|
      t.integer :user_id
      t.references :subscribable, :polymorphic=>true
      t.timestamps
    end
  end
end

しかし、ここで私は立ち往生しています。Userモデルでポリモーフィック リレーションシップを設定する方法がわかりません。

私は次のことを得ることができるようにしたい:

  • @user.watched_users
  • @user.watched_journals
  • @user.followers
  • @journal.followers

誰か助けてくれませんか?これに関するドキュメントはまばらであり、セットアップが本当に面倒な作業になる可能性があることを私は知っています。

^_^

4

1 に答える 1

1

ユーザーに任意のオブジェクトをサブスクライブさせたいという欲求は理解していますが、実際には、これらの異なるサブスクリプションを異なる方法で処理することになります。サイト)、それらを分離したままにしておきます (YAGNI)。

これは、関係ごとに単純な結合テーブルを使用して行うことができます。How do I do reflexive self-join relationship in ActiveRecord?の答え http://railscasts.com/episodes/163-self-referential-associationの良い例につながります

于 2012-07-30T08:47:24.843 に答える