Ruby on rails 如何仅允许创建类别的用户在rails中编辑类别
我有两个表Ruby on rails 如何仅允许创建类别的用户在rails中编辑类别,ruby-on-rails,ruby,Ruby On Rails,Ruby,我有两个表书签和类别。这些模型具有HABTM关系 一切正常,但我只想让创建了类别的用户能够编辑它们。我在书签上设置了这个选项,好的,但是有没有一种方法可以使用书签和类别之间的关系来设置它,或者我只是将其设置为与书签相同的方式?在类别表中有一个用户id。假设您有两个联接表: user.rb has_many :categories, :through => :user_categories category.rb has_many :users, :through => :user_
书签
和类别
。这些模型具有HABTM关系
一切正常,但我只想让创建了
类别的用户能够编辑它们。我在书签
上设置了这个选项,好的,但是有没有一种方法可以使用书签
和类别
之间的关系来设置它,或者我只是将其设置为与书签
相同的方式?在类别
表中有一个用户id
。假设您有两个联接表:
user.rb
has_many :categories, :through => :user_categories
category.rb
has_many :users, :through => :user_categories
has_many :bookmarks, :through => :bookmark_categories
def is_editable_by?(user)
user.category.include? self
end
bookmark.rb
has_many :categories, :through => :bookmark_categories
has_many :users, :through => :categories
Class BookMark < ActiveRecord::Base
has_many :categories, :through => :bookmark_categories
has_many :users, :through => :categories
end
您的_view.html.erb
if category.is_editable_by? current_user
<%= link_to "edit", edit_category_path, category %>
end
如果category.u可编辑吗?当前用户
结束
如果意图是
a) 只有创建书签的用户才能编辑它们
然后我们需要在bookmark
模型中有一个单独的列user\u id
,以存储书签的创建者,并允许类似于category
的访问
b) 创建类别的用户可以编辑该类别下的任何书签,然后我们可以使用关联的来获取具有权限的用户
bookmark.rb
has_many :categories, :through => :bookmark_categories
has_many :users, :through => :categories
Class BookMark < ActiveRecord::Base
has_many :categories, :through => :bookmark_categories
has_many :users, :through => :categories
end
类书签:书签\u类别
拥有多个:用户,:至=>:类别
结束
我们可以说bookmark.users.include?(当前用户)
然后仅在满足此条件时才允许编辑。您的要求是-您只希望创建书签的用户编辑它们?是,有没有一种方法可以使用书签和类别之间的关系来实现这一点,或者我只是在类别表中创建一个用户id列。请参阅下面我对这两种情况的回答。