0

こんにちは私は3つのモデルを持っています:会社、プラン、サブスクリプションと次の協会

    class Company < ActiveRecord::Base
      has_one :plan, :through => :subscriptions
      has_many :subscriptions
    end

    class Subscription < ActiveRecord::Base
      belongs_to :plan
      belongs_to :company
    end

   class Plan < ActiveRecord::Base
      has_many :subscriptions
      has_many :companies, :through => :subscriptions
    end

アプリケーションプラン「A」とプラン「B」に2つのプランがあります。プラン「A」は無料で、「B」には料金がかかります。ここで、プラン「A」の会社とプラン「B」の会社を登録したいと思います。
私は自分のモデルにこのデータが欲しいのですが、これは間違いなくすべてを取得する簡単な方法ですが、私が使用したすべてのものは正しいデータを提供していません。どんな助けでもありがたいです。

4

2 に答える 2

1

アソシエーションを通じて新しいレコードを挿入する必要があります。これが役立つかもしれない関連リンクです。has_manyにレコードを追加する方法:railsの関連付けを介して

しかし、擬似コードは次のようになります

1. You have a company object
2. you will have company.subscriptions
3. Insert new Plan objects in company.subscriptions
4. Save the data.

それでも問題が発生する場合は、コード例を追加してみます。

于 2012-09-28T05:25:32.950 に答える
1

プラン「A」の会社とプラン「B」の会社を登録します。計画の対象を取り、次に関係コードをたどることにより、会社の数を取得します。これが結合の概念です。例えば。@planはプラン'A'のオブジェクトです。次に@plan.companies.count。

「ポリモーフィックアソシエーション」の概念を使用することをお勧めします。

于 2012-09-28T05:56:40.693 に答える