我有兩個表bookmarks
和categories
。這些模型具有HABTM關係。我如何只允許創建類別的用戶在rails中編輯它
一切正常,但我只想讓users
誰創建了category
能夠編輯它們。我在bookmarks
上設置了這個設置,但是有沒有辦法使用bookmarks
和categories
之間的關係來做到這一點,或者我只是將其設置爲與bookmarks
相同?在categories
表中有user_id
。
我有兩個表bookmarks
和categories
。這些模型具有HABTM關係。我如何只允許創建類別的用戶在rails中編輯它
一切正常,但我只想讓users
誰創建了category
能夠編輯它們。我在bookmarks
上設置了這個設置,但是有沒有辦法使用bookmarks
和categories
之間的關係來做到這一點,或者我只是將其設置爲與bookmarks
相同?在categories
表中有user_id
。
假設你已經加入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
您還需要防止在控制器中進行編輯。 – doesterr
如果目的是
a)僅誰創建用戶的書籤可以編輯這些
然後我們需要在bookmark
模型有一個單獨的列user_id
存儲書籤的創造者並允許訪問類似category
。
b)創建該類別的用戶可以編輯該類別下的任何書籤,然後我們可以使用關聯獲得具有權限的用戶。
bookmark.rb
Class BookMark < ActiveRecord::Base
has_many :categories, :through => :bookmark_categories
has_many :users, :through => :categories
end
,我們就可以說bookmark.users.include?(current_user)
然後允許編輯僅當此條件滿足。
您的要求是 - 您只需要創建書籤的用戶編輯它們? –
是的,有沒有辦法做到這一點使用書籤和類別之間的關係,或者我只是在類別表中創建一個用戶ID列 –
請查看我的答案下面的兩種情況。 –