简体   繁体   English

如何在Rails中检索给定user_level的用户

[英]How to retrieve users given user_level in rails

Here is two models: user and user_level. 这是两个模型:user和user_level。 User has_many user_levels and user-level belongs to user. 用户has_many user_levels和user-level属于user。

class user < ActiveRecord::Base
  has_many :user_level
end

class UserLevel < ActiveRecord::Base

  belongs_to :user
end

UserLevel.find_by_role('sales') will retrieve all record (w/ user_id) of role sales. UserLevel.find_by_role('sales')将检索角色销售的所有记录(带有user_id)。 How to retrieve user email given user_level with role 'sales'? 如何使用角色“ sales”检索给定user_level的用户电子邮件?

Thanks. 谢谢。

User.joins(:user_levels).where(:user_levels => { :role => "sales"}).select("email")

or 要么

UserLevel.joins(:user).where(:role => "sales").select("email")

update 更新

UserLevel.find_by_role("sales").users

You may have the associations backwards and actually want: 您可能有向后关联,并且实际上想要:

class User < ActiveRecord::Base
  belongs_to :user_level
end
class UserLevel < ActiveRecord::Base
  has_many :users
end

Then: 然后:
@users = UserLevel.find_by_role('sales').users @users = UserLevel.find_by_role('sales')。users
You can then iterate over the @user collection and use the email within the iterations. 然后,您可以遍历@user集合并在迭代中使用电子邮件。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM