我对 mongoid 查询有点迷茫。我有一个拥有一家公司的用户。这是模型
class Company
include Mongoid::Document
include Mongoid::Timestamps
field :name, :type => String
field :description, :type => String
field :order_minimun, :type => Float
belongs_to :user
def candidate_users
User.where(:company_id => nil)
end
end
class User
include Mongoid::Document
include Mongoid::Timestamps
ROLES = %w[admin company_owner customer]
# Include default devise modules. Others available are:
# :token_authenticatable, :confirmable,
# :lockable, :timeoutable and :omniauthable
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable, :omniauthable
## Database authenticatable
field :email, :type => String, :default => ""
field :encrypted_password, :type => String, :default => ""
validates_presence_of :email
validates_presence_of :encrypted_password
## Recoverable
field :reset_password_token, :type => String
field :reset_password_sent_at, :type => Time
## Rememberable
field :remember_created_at, :type => Time
## Trackable
field :sign_in_count, :type => Integer, :default => 0
field :current_sign_in_at, :type => Time
field :last_sign_in_at, :type => Time
field :current_sign_in_ip, :type => String
field :last_sign_in_ip, :type => String
field :name, :type => String
field :last_name, :type => String
validates_presence_of :name
#validates_uniqueness_of :name, :email, :case_sensitive => false
field :roles_list, :type => Array , :default => ['customer']
validates_uniqueness_of :email, :case_sensitive => false
has_one :company
end
我想列出没有公司的用户以及拥有公司实例的用户。
我的第一次尝试(只是没有公司的用户):
def candidate_users
User.where(:company_id => nil)
end
像这样的东西
def candidate_users
User.any_of(:company_id => self.id, :company_id => nil)
end
但我没有运气,这会返回所有用户。
有人可以帮我解决这个问题吗?
提前致谢。