Ruby on rails 3.2 RubyonRails已经从多个来源获得了很多信息

Ruby on rails 3.2 RubyonRails已经从多个来源获得了很多信息,ruby-on-rails-3.2,associations,has-many-through,Ruby On Rails 3.2,Associations,Has Many Through,我有一类用户 一个用户可以有多个文件,文件类有一个用户id列。现在的要求是用户可以与其他用户共享文件 因此,用户可以拥有自己的文件,并能够查看和编辑属于其他用户的文件 我的基本想法是创建一个SharedFile关联并使用它 has_many :files has_many :shared_files has_many :files, through: shared_files 但是,当调用@user.files时,只返回共享文件的集合,而不返回用户拥有的任何文件。有没有办法合并这两个集合 我知

我有一类用户

一个用户可以有多个文件,文件类有一个用户id列。现在的要求是用户可以与其他用户共享文件

因此,用户可以拥有自己的文件,并能够查看和编辑属于其他用户的文件

我的基本想法是创建一个SharedFile关联并使用它

has_many :files
has_many :shared_files
has_many :files, through: shared_files
但是,当调用@user.files时,只返回共享文件的集合,而不返回用户拥有的任何文件。有没有办法合并这两个集合


我知道我遗漏了一个步骤,或者这可能根本不是正确的方法

问题在于,用户的方法
.files
必须执行其中一个步骤。它不能同时做这两件事。如果您已经可以访问用户文件,为什么需要通过
共享_文件
访问它们?我假设所有
共享的_文件
也只是
文件
。如果只想为用户获取共享文件,可以设置定义一个作用域,该作用域根据共享的文件进行选择。shared_files是一个关联。原始应用程序a用户有许多文件。随着新的需求文件的出现,许多用户已经拥有并属于这些文件。