3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
# File 'lib/sexy_auto_complete/helper.rb', line 3
def auto_complete_for(record_name, column_name, target_options = {}, suggest_options = {}, trigger_options = {})
record = instance_variable_get("@#{record_name}")
model_name = record.class.name.demodulize.underscore
controller = target_options.delete(:controller) || model_name
action = target_options.delete(:action) || "auto_complete_#{column_name}"
field_name = target_options.delete(:name) || column_name
target_id = field_name.gsub(/\[|\]/, '_')
options = {:name=>field_name, :id=>target_id, :class=>"#{column_name}-input", :size=>20}.merge(trigger_options)
target = input(record_name, column_name, options)
options = {:id=>"#{target_id}_auto_complete", :class=>"auto_complete", :style=>"width:400px;"}.merge(suggest_options)
suggest = content_tag('div', '', options)
url = {:controller=>controller, :action=>action, :id=>target_id, :path=>field_name}
options = {:url=>url, :min_chars=>3}.update(trigger_options)
trigger = auto_complete_field target_id, options
target + suggest + trigger
end
|