Ruby on rails Rails自动完成多个字段上的嵌入式文档

Ruby on rails Rails自动完成多个字段上的嵌入式文档,ruby-on-rails,autocomplete,mongoid,multiple-columns,Ruby On Rails,Autocomplete,Mongoid,Multiple Columns,我使用的是mongoid,我有一个嵌入式结构,看起来像这样*: class User field :first_name field :last_name embeds_one :administrateur embeds_many :customers embeds_one :contractor 现在,我希望能够自动完成一个客户(名字和姓氏)。我想我可以首先在User类上使用命名作用域来检索每个匹配的用户,但是: 我想不出好的语法来“自动完成”第

我使用的是mongoid,我有一个嵌入式结构,看起来像这样*:

class User
    field :first_name
    field :last_name

    embeds_one :administrateur
    embeds_many :customers
    embeds_one :contractor
现在,我希望能够自动完成一个客户(名字和姓氏)。我想我可以首先在User类上使用命名作用域来检索每个匹配的用户,但是:

  • 我想不出好的语法来“自动完成”第一个和最后一个名字(我没有使用SQL,所以这个方法不起作用)
  • 一旦我有了名称与自动完成术语匹配的用户列表,我就必须得到相应的嵌入文档
所以我相信这种代码会起作用:

@customers = Array.new
User.by_name(params[:term]).each do |user|
    @customers << user.customers
end
@customers=Array.new
User.by_name(params[:term])。每个do|User|

@客户我为mongoid提出的语法

class User
    ...
    scope :by_first_name, ->(regex){ 
        where(:first_name => /#{Regexp.escape(regex)}/i)
    }
    scope :by_last_name, ->(regex){
        where(:last_name => /#{Regexp.escape(regex)}/i)
    }
    scope :by_name, ->(regex){ 
        any_of([by_first_name(regex).selector, by_last_name(regex).selector])
    }