94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
|
# 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))]
{entry: record}
end
end
|