我有两张表bookmarks
和categories
。这些模型具有HABTM关系。
一切正常,但我只想允许创建users
的{{1}}能够对其进行编辑。我在category
上设置好了,但有没有办法使用bookmarks
和bookmarks
之间的关系来设置它,或者我只是设置它与{{1}相同的方式}}?在categories
表格中有bookmarks
。
答案 0 :(得分:1)
假设您有2个连接表:
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
your_view.html.erb
if category.is_editable_by? current_user
<%= link_to "edit", edit_category_path, category %>
end
答案 1 :(得分:1)
如果意图是
a)只有创建书签的用户才能编辑它们
然后我们需要在user_id
模型中有一个单独的列bookmark
来存储书签的创建者并允许访问类似于category
。
bookmark.rb
Class BookMark < ActiveRecord::Base
has_many :categories, :through => :bookmark_categories
has_many :users, :through => :categories
end
我们可以说bookmark.users.include?(current_user)
然后只有在满足条件时才允许编辑。