0

我有两张桌子bookmarkscategories. 这些模型具有 HABTM 关系。

一切正常,但我只想让users创建 a 的category人能够编辑它们。我已经设置好了,bookmarks但是有没有办法使用 and 之间的关系来做到这一点bookmarkscategories或者我只是以与 相同的方式设置它bookmarks?这是user_idcategories表中有一个。

4

2 回答 2

1

假设您有 2 个连接表:

用户.rb

has_many :categories, :through => :user_categories

类别.rb

has_many :users, :through => :user_categories
has_many :bookmarks, :through => :bookmark_categories

def is_editable_by?(user)
  user.category.include? self
end

书签.rb

has_many :categories, :through => :bookmark_categories
has_many :users, :through => :categories

your_view.html.erb

if category.is_editable_by? current_user
  <%= link_to "edit", edit_category_path, category %>
end
于 2013-06-23T10:23:58.030 回答
1

如果意图是

a) 只有创建书签的用户才能编辑它们

然后我们需要user_idbookmark模型中有一个单独的列来存储书签的创建者并允许访问类似于category.

b) 创建类别的用户可以编辑该类别下的任何书签,然后我们可以使用关联来获取具有权限的用户。

书签.rb

Class BookMark < ActiveRecord::Base
   has_many :categories, :through => :bookmark_categories
   has_many :users, :through => :categories
end

我们只能说bookmark.users.include?(current_user)只有在满足此条件时才允许编辑。

于 2013-06-23T10:40:05.763 回答