0

私は2つのテーブルbookmarkscategories. これらのモデルには HABTM 関係があります。

すべてが正常に機能しますが、users作成した人だけcategoryが編集できるようにしたいのです。私はこれを大丈夫に設定していbookmarksますが、 と の関係を使用してそれを行う方法はありますかbookmarkscategoriesまたは と同じように設定するだけbookmarksですか? テーブルにがuser_idありcategoriesます。

4

2 に答える 2

1

もしその意図が

a) ブックマークを作成したユーザーのみがブックマークを編集できます

次に、ブックマークの作成者を保存し、同様のアクセスを許可するために、モデルにuser_id別の列が必要です。bookmarkcategory

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 に答える
1

2 つの結合テーブルがあると仮定します。

user.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 に答える