Saving a form using autocomplete instead of select field
- by Jason Swett
I have a form that looks like this:
<%= form_for(@appointment) do |f| %>
<% if @appointment.errors.any? %>
<div id="error_explanation">
<h2><%= pluralize(@appointment.errors.count, "error") %> prohibited this appointment from being saved:</h2>
<ul>
<% @appointment.errors.full_messages.each do |msg| %>
<li><%= msg %></li>
<% end %>
</ul>
</div>
<% end %>
<%= f.fields_for @client do |client_form| %>
<div class="field">
<%= client_form.label :name, "Client Name" %><br />
<%= client_form.text_field :name %>
</div>
<% end %>
As you can see, the field for @client is a text field as opposed to select field. When I try to save my form, I get this error:
Client(#23852094658120) expected, got ActiveSupport::HashWithIndifferentAccess(#23852079773520)
That's not surprising. It seems to me that it was expecting a select field, which it could translate into a Client object, but instead it just got a string.
I know I can do Client.find( :first, :conditions => { :name => params[:name] } ) to find a Client with that name, but how do I tell my form that that's what's going on?