Назовите более одного предмета из другой модели? - PullRequest
0 голосов
/ 17 мая 2010

На данный момент в моем приложении я могу выбрать компанию из модели компании при создании нового kase в модели kase.

<ul id="kases_new">
    <li>Company<span><%= f.select :company_id, Company.all.collect {|m| [m.companyname, m.id]} %></span></li>

Показывает список компаний, а затем, когда я выбираю одну, добавляет идентификатор компании в поле company_id в таблице kases.

Я хочу добавить в казу вторую компанию, но не знаю, каков будет следующий шаг. Я создал поле в таблице kases, называемое assignsurveyor_id, поэтому, когда я выбираю компанию, он добавляет идентификатор компании в поле assignsurveyor_id.

Это работает, но мне нужно иметь возможность вызывать информацию об этой компании, как если бы я была первой компанией.

<%= @kase.appointedsurveyor_id %>

Вышесказанное возвращает номер company_id, но как мне вернуть название компании, адрес и т. Д.?

Для первой компании это так же просто, как:

<li>Fax: <span><%=h @kase.company.companyfax %></span></li>

но если я сделаю это во второй раз, я просто получу информацию о первой компании.

Спасибо

Danny

1 Ответ

2 голосов
/ 17 мая 2010

В вашей модели Kase:

belongs_to :surveyor,
           :class_name => "Company",
           :foreign_key => "appointedsurveyor_id"

Тогда у вас есть доступ к нему через @kase.surveyor и у вас есть доступ ко всей информации Company.

...