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