从rails3-jquery-autocomplete自定义列表

时间:2013-09-10 10:52:59

标签: ruby-on-rails ruby-on-rails-3 autocomplete

我有hotel模型,其属性为:

id, hotel_name, address, searchable.

当我为特定酒店设置可搜索的false时,当我输入搜索字段时,此酒店不应该进入下拉列表。

控制器

class HotelsController < Admin::BaseController
  autocomplete :hotel, :hotel_name, :full => true
end

如何优化此

1 个答案:

答案 0 :(得分:4)

在您的控制器中

def get_autocomplete_items(parameters)
  items = active_record_get_autocomplete_items(parameters)
  items = items.where(searchable: true)
end

在上面的示例中,我们调用active_record_get_autocomplete_items而不是super;由于设计处理多个ORM,因此动态调用这些方法,因此没有超级。在上面的示例中,假设ActiveRecord,但MongoidMongoMapper目前也都受支持(其他人可能在将来)。上面的示例仍然可以使用,但根据您使用的ORM,调用active_record_get_autocomplete_items(parameters)需要更改以匹配您的驱动程序,例如mongo_mapper_get_autocomplete_items(parameters)驱动程序的MongoMapper

使用范围

autocomplete :hotel, :hotel_name, :full => true, :scopes => [:searchable_allow]

在模型中

 scope :searchable_allow, where(searchable: true)