0

我有一个 Rails 应用程序,用户可以在其中创建笔记本并与其他用户共享。用户可以编辑关于他们自己的笔记本的所有内容,但只能编辑与他们共享的部分笔记本。现在我的模型看起来像这样:

class User < ActiveRecord::Base
    has_many :notebooks

    # other user things...
end

class Notebook < ActiveRecord::Base
    belongs_to :user

    # other notebook things...
end

在我的控制器中,我允许用户编辑他们自己的笔记本。现在我需要弄清楚如何允许其他用户访问与他们共享的部分笔记本。我想做类似的事情:

class Notebook < ActiveRecord::Base
    belongs_to :user # the admin user for this notebook
    has_many :users # all users with access
end

我不确定如何设置它,因为我是 Rails 新手。关于如何构建这些数据的任何建议?

4

1 回答 1

0

你检查了has_many_and_belongs_to吗?或者has_many, :through在此处查看 Rails 指南。

class Notebook < ActiveRecord::Base
  has_many :users, through: :user_notebooks
end

class User < ActiveRecord::Base
  has_many :notebooks, through: :user_notebooks
end

另外,注意你的复数形式(即应该是has_many :users,不是has_many :user)。

于 2013-10-23T20:47:39.347 回答