Мне сложно создать метод, чтобы узнать, является ли пользователь частью группы. Существует модель для пользователя, группы и членства. Ниже приведены два метода (многие из которых я попытался, но не добился успеха).Как создать метод, чтобы узнать, является ли пользователь частью группы?
Как я могу создать метод, чтобы узнать, является ли пользователь членом группы? (Я хотел бы способ получения истинного или ложного результата.)
def member?(group_1)
if Membership.where(user_id: self.id, group_id: group_1.id)
return true
else
return false
end
end
def membership?(group)
Membership.where(user_id: self.id, group_id: group.id)
end
Вот атрибуты трех различных моделей:
create_table "groups", force: :cascade do |t|
t.string "name"
end
create_table "memberships", force: :cascade do |t|
t.integer "user_id"
t.integer "group_id"
end
create_table "users", force: :cascade do |t|
t.string "email"
t.string "first_name"
t.string "last_name"
end
Вот код в каждой соответствующей модели:
class Membership < ActiveRecord::Base
belongs_to :user
belongs_to :group
end
class User < ActiveRecord::Base
has_many :memberships, dependent: :destroy
has_many :groups, through: :memberships
end
class Group < ActiveRecord::Base
has_many :memberships, dependent: :destroy
has_many :users, through: :memberships
end
Спасибо @dhouty! Этот метод работает. Я ценю, что вы нашли время ответить на мой вопрос. – Mauricio