从 rails3-jquery-autocomplete 自定义列表



我有一个hotel模型,它的属性是:

id, hotel_name, address, searchable.

当我为特定酒店设置可搜索false时,当我输入搜索字段时,这家酒店不应该出现在下拉菜单中。

控制器是

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

我怎样才能优化它

在控制器中

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

在上面的例子中,我们调用active_record_get_autocomplete_items而不是super;没有super,因为这些方法是动态调用的,因为设计是处理多个ORM。 在上面的示例中,假设ActiveRecord,但是当前也支持MongoidMongoMapper(将来可能会支持其他版本)。 上面的示例仍然有效,但根据您使用的 ORM 调用active_record_get_autocomplete_items(parameters)需要更改以匹配您的驱动程序,例如,对于MongoMapper驱动程序来说,它会变得mongo_mapper_get_autocomplete_items(parameters)

使用范围

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

在模型中

 scope :searchable_allow, where(searchable: true)  

最新更新