has_many: через форму множественного выбора - PullRequest
2 голосов
/ 21 мая 2010

Я пытаюсь установить отношение «многие ко многим», используя метод has_many: through, а затем использую поле множественного выбора, чтобы установить отношения. Я следую этому уроку:

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

Однако по какой-то причине в форме отображается странное шестнадцатеричное число, и оно меняет каждое обновление страницы, я не совсем уверен, что я делаю неправильно. Ниже код моей модели / вида.

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 %>

Также здесь форма выглядит так, как будто она показывает правильное количество записей для поля, но явно не показывает правильное имя для отношения.

SIC Multi-Select http://web9.twitpic.com/img/103694166-98ad71116216d3d1b12dd77690b36248.4bf6ca20-full.jpg

1 Ответ

6 голосов
/ 21 мая 2010

То, что вы видите в методе to_s объекта ActiveRecord::Base. Шестнадцатеричное число - это область памяти, которая будет отличаться при каждом запросе. После просмотра кода Formastic он ищет методы из предопределенного списка, чтобы найти текст для отображения.

Убедитесь, что у вашей Sic модели есть поле (или метод) в этом списке to_label, display_name, full_name, name, title, username, login, value, to_s, который возвращает нужный вам текст.

...