Saving a form using autocomplete instead of select field

Posted by Jason Swett on Stack Overflow See other posts from Stack Overflow or by Jason Swett
Published on 2011-01-16T16:51:03Z Indexed on 2011/01/16 16:53 UTC
Read the original article Hit count: 230

Filed under:
|

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?

© Stack Overflow or respective owner

Related posts about ruby-on-rails

Related posts about forms