views:

362

answers:

1

I'm trying to set up a many to many relationship using the has_many :through method and then use a multi-select field to setup the relationships. I'm following this tutorial:

http://asciicasts.com/episodes/185-formtastic-part-2

However for some reason the form displays a strange hex number and it changes each page refresh, I'm not exactly sure what I'm doing wrong. Below is my model/view code.

company.rb

has_many :classifications
has_many :sics, :through => :classifications

sic.rb

has_many :classifications
has_many :companies, :through => :classifications

classification.rb

belongs_to :company
belongs_to :sic

_form.html.erb

<% semantic_form_for @company do |f| %>

<% f.inputs do %> <%= f.input :company %> <%= f.input :sics %> <% end %> <%= f.buttons %> <% end %>

Also here is the the form looks like it's showing the correct number of entries for the field but it is clearly not showing the correct name for the relationship.

SIC Multi-Select

+1  A: 

What you are seeing in the to_s method of an ActiveRecord::Base object. The hex number is the memory location which would be different each request. After poking around the Formastic code, it looks for methods from a predefined list to find the text to display.

Make sure your Sic model has a field (or method) in this list to_label, display_name, full_name, name, title, username, login, value, to_s that returns the text you want.

Samuel
You're brilliant that worked perfectly just added a field called name and it shows up just fine now. Thanks.
Tristan O'Neil