【发布时间】:2015-11-13 04:07:43
【问题描述】:
我很难创建一种方法来确定用户是否属于某个组。有一个用户、组和成员的模型。以下是两种方法(我尝试过的许多方法,但都没有成功)。
如何创建一种方法来确定用户是否是组的成员?(我希望该方法产生真假结果。)
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
【问题讨论】:
标签: ruby-on-rails methods associations model-associations