我有两张桌子bookmarks
和categories
. 这些模型具有 HABTM 关系。
一切正常,但我只想让users
创建 a 的category
人能够编辑它们。我已经设置好了,bookmarks
但是有没有办法使用 and 之间的关系来做到这一点bookmarks
,categories
或者我只是以与 相同的方式设置它bookmarks
?这是user_id
在categories
表中有一个。
我有两张桌子bookmarks
和categories
. 这些模型具有 HABTM 关系。
一切正常,但我只想让users
创建 a 的category
人能够编辑它们。我已经设置好了,bookmarks
但是有没有办法使用 and 之间的关系来做到这一点bookmarks
,categories
或者我只是以与 相同的方式设置它bookmarks
?这是user_id
在categories
表中有一个。
假设您有 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
如果意图是
a) 只有创建书签的用户才能编辑它们
然后我们需要user_id
在bookmark
模型中有一个单独的列来存储书签的创建者并允许访问类似于category
.
b) 创建类别的用户可以编辑该类别下的任何书签,然后我们可以使用关联来获取具有权限的用户。
书签.rb
Class BookMark < ActiveRecord::Base
has_many :categories, :through => :bookmark_categories
has_many :users, :through => :categories
end
我们只能说bookmark.users.include?(current_user)
只有在满足此条件时才允许编辑。