我有一个hotel
模型,它的属性是:
id, hotel_name, address, searchable.
当我false
为特定酒店设置可搜索时,当我在搜索字段中输入时,这家酒店不应该出现在下拉列表中。
控制器是
class HotelsController < Admin::BaseController
autocomplete :hotel, :hotel_name, :full => true
end
我该如何优化这个
我有一个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
; 由于设计用于处理多个 ORM,因此这些方法是动态调用的,因此没有super。然而,在上面的示例ActiveRecord
中是假设的,Mongoid
并且MongoMapper
当前也都支持(因为将来可能会支持其他示例)。上面的示例仍然有效,但根据您使用调用的 ORMactive_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)