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 http://web9.twitpic.com/img/103694166-98ad71116216d3d1b12dd77690b36248.4bf6ca20-full.jpg
What you are seeing in the
to_smethod of anActiveRecord::Baseobject. 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
Sicmodel has a field (or method) in this listto_label, display_name, full_name, name, title, username, login, value, to_sthat returns the text you want.