class Engine2::TypeAheadAction
Public Instance Methods
case_insensitive()
click to toggle source
# File lib/engine2/action/decode.rb, line 86 def case_insensitive @case_insensitive = true end
get_case_insensitive()
click to toggle source
# File lib/engine2/action/decode.rb, line 82 def get_case_insensitive @case_insensitive end
get_limit()
click to toggle source
# File lib/engine2/action/decode.rb, line 78 def get_limit @limit end
invoke(handler)
click to toggle source
# File lib/engine2/action/decode.rb, line 94 def invoke handler model = assets[:model] if query = handler.params[:query] fields = @meta[:decode_fields] || static.meta[:decode_fields] entries = if query.to_s.empty? get_query else table_name = model.table_name condition = fields.map{|f|table_name.q(f).like("%#{query}%", case_insensitive: @case_insensitive || static.get_case_insensitive)}.reduce{|q, f| q | f} get_query.where(condition) end.limit(@limit || static.get_limit).load_all {entries: entries} else handler.permit id = handler.params[:id] record = get_query.unordered.load Hash[model.primary_keys_qualified.zip(split_keys(id))] # handler.halt_not_found(LOCS[:no_entry]) unless record {entry: record} end end
limit(lmt)
click to toggle source
# File lib/engine2/action/decode.rb, line 74 def limit lmt @limit = lmt end
order(*fields)
click to toggle source
# File lib/engine2/action/decode.rb, line 90 def order *fields @query = get_query.order *fields end
pre_run()
click to toggle source
Calls superclass method
Engine2::DecodeAction#pre_run
# File lib/engine2/action/decode.rb, line 69 def pre_run super @limit = 10 end