Rails3 jquery 自动完成不同值

发布于 2024-10-07 22:52:39 字数 44 浏览 3 评论 0原文

是否可以使用 Rails3 JQuery 自动完成 gem 选择不同的值?

Is it possible to select DISTINCT values using Rails3 JQuery autocomplete gem?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

燕归巢 2024-10-14 22:52:39

使用范围更好更简单。

在您的模型中:

scope :uniquely_named, group(:name)

在您的控制器中:

autocomplete :user, :name, :scopes => [:uniquely_named]

此解决方案允许轻松应用更复杂的过滤:

model:

scope :uniquely_named, group(:name)
scope :online, where(:online => true)

controller:

autocomplete :user, :name, :scopes => [:uniquely_named, :online]

来源

It is much better and simpler to use scopes.

In your model:

scope :uniquely_named, group(:name)

In your controller:

autocomplete :user, :name, :scopes => [:uniquely_named]

This solution allows more complex filtering to be easily applied:

model:

scope :uniquely_named, group(:name)
scope :online, where(:online => true)

controller:

autocomplete :user, :name, :scopes => [:uniquely_named, :online]

source

最后的乘客 2024-10-14 22:52:39

似乎不是 - 但是 - “自动完成”宏实际上只是在控制器中定义一个操作。我会放弃在控制器中使用“自动完成”,而自己实施该操作......

def autocomplete_for_user_name
   User.select('distinct name')
end

祝你好运。

Doesn't appear to - but - the 'autocomplete' macro is really just defining an action in your controller. I'd forego using 'autocomplete' in my controller and just implement the action myself...

def autocomplete_for_user_name
   User.select('distinct name')
end

Good luck.

我不是你的备胎 2024-10-14 22:52:39

我试试这个:

class UbicationsController < ApplicationController
  autocomplete :ubication, :name

  def autocomplete_ubication_name
    render json: Ubication.select("DISTINCT name as value").where("LOWER(name) like LOWER(?)", "%#{params[:term]}%")
  end
end

I try this:

class UbicationsController < ApplicationController
  autocomplete :ubication, :name

  def autocomplete_ubication_name
    render json: Ubication.select("DISTINCT name as value").where("LOWER(name) like LOWER(?)", "%#{params[:term]}%")
  end
end
隱形的亼 2024-10-14 22:52:39

其他答案均不适用于 MongoID。

我混合使用许多答案来做到这一点:

class ProductsController < ApplicationController
  autocomplete :product, :manufacturer
  autocomplete :product, :model

  def autocomplete_product_manufacturer
    render_autocomplete(:manufacturer)
  end

  def autocomplete_product_model
    render_autocomplete(:model)
  end

  def render_autocomplete(field)
    render json: Product.where(field => /#{params[:term]}/i).where(domain: @domain).distinct(field)
  end
end

这不使用关系。制造商和型号是产品型号上的字符串字段。

谢谢大家的解答。

None of other answers works with MongoID.

I use a mix of many answers to do this:

class ProductsController < ApplicationController
  autocomplete :product, :manufacturer
  autocomplete :product, :model

  def autocomplete_product_manufacturer
    render_autocomplete(:manufacturer)
  end

  def autocomplete_product_model
    render_autocomplete(:model)
  end

  def render_autocomplete(field)
    render json: Product.where(field => /#{params[:term]}/i).where(domain: @domain).distinct(field)
  end
end

This does not use relations. The manufacturer and model are string field on Product model.

Thanks you all for answers.

怕倦 2024-10-14 22:52:39

Postgresql:

   scope :uniquely_named, :select => 'distinct name' #In model
   autocomplete :user, :name, :scopes => [:uniquely_named] #In controller

Postgresql:

   scope :uniquely_named, :select => 'distinct name' #In model
   autocomplete :user, :name, :scopes => [:uniquely_named] #In controller
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文