我有hotel
模型,其属性为:
id, hotel_name, address, searchable.
当我为特定酒店设置可搜索的false
时,当我输入搜索字段时,此酒店不应该进入下拉列表。
控制器
class HotelsController < Admin::BaseController
autocomplete :hotel, :hotel_name, :full => true
end
如何优化此
答案 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
,但Mongoid
和MongoMapper
目前也都受支持(其他人可能在将来)。上面的示例仍然可以使用,但根据您使用的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)