0

User クラスと Table クラスの間に多対多の関連付けがあります。さらに、ユーザーとテーブルの間に 1 対多の関連付けがあります (1 人のユーザーが最終的にテーブルを所有します)。ユーザーがアクセスできるすべてのテーブルにアクセスしようとしています(本質的に両方の関連付けに参加しています)。

さらに、named_scope (現在はスコープ) でこれを行うとよいでしょう。

これが私がこれまでに持っているものです:

class User < ActiveRecord::Base
  acts_as_authentic

  attr_accessible :email, :password, :password_confirmation
  has_many :feedbacks
  has_many :tables

  has_many :user_table_permissions
  has_many :editableTables, :class_name => "Table", :through => :user_table_permissions

  def allTables
    editableTables.merge(tables)
  end

end
4

1 に答える 1

0

最近、非常によく似た問題について投稿しました。(http://stackoverflow.com/questions/4085972/ruby-on-rails-combine-results-from-multiple-has-many-or-has-many-through-associa)私の2つの協会には、1つの追加のハンディキャップがありますは多形ですが、基本的には、1つのファインダーを使用して2つの関連付け結果を組み合わせ、ファインダー、名前付きスコープ、またはその他のAR機能を使用してさらに処理できるように結果セットを用意します。

現在、このActiveRecord機能を正確に失うことなくしては不可能のようです(上記のように「def」を使用するか、関連付けのセットアップで:finder_sqlと:counter_sqlを使用します)。これを行う方法を思いついた場合は、教えていただければ幸いです。

ありがとう!

イェンス

于 2010-11-04T13:20:56.887 に答える