Alex Moore
2006-Aug-01 12:29 UTC
[Rails] Custom Autocomplete Field - Making a field lowercase
I''m trying to humanize() the results that appear in the autocomplet
drop
down list.
First i customised the controller.
In the render line on the controller it is saying "i want to use locality
on
each of the @items".
So locality is what i want to humanize".
My ideas so far is to:
Customise the PostCode object so that when auto_complete_result trys to call
item.locality, but i''ve tried overridding both def locality and def[]
and it
doesn''t seam to work.
The other idea is to create a rhtml template that generates the
auto_complete_return.. but I have no idea how to do that.
Here''s the code:
View:
<%= text_field_with_auto_complete :post_code, :locality, :cols => 40
%>
Controller:
def auto_complete_for_post_code_locality
find_options = {
:conditions => [ "LOWER(locality) LIKE ?",
params[:post_code][:locality].downcase + ''%'' ],
:order => "locality ASC",
:limit => 10 }
@items = PostCode.find(:all, find_options)
render :inline => "<%= auto_complete_result @items,
''locality'' %>"
end
def auto_complete_result(entries, field, phrase = nil)
return unless entries
items = entries.map { |entry| content_tag("li", phrase ?
highlight(entry[field], phrase) : h(entry[field])) }
content_tag("ul", items.uniq)
end
