Вызов данных из другой модели в Rails - PullRequest
0 голосов
/ 28 апреля 2010

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

На данный момент у меня есть следующие модели:

kase
person
company
party

Я могу вызвать информацию от компании к казе и от человека к казе, используя это:

<li>Client Company Address: <span class="address"><%=h @kase.company.companyaddress %></span></li>
<li>Case Handler: <span><%=h @kase.person.personname %></span></li>

Эти две работы, однако, если я добавлю следующее:

<li>Client Company Fax: <span><%=h @kase.company.companyfax %></span></li>
<li>Case Handler Tel: <span><%=h @kase.person.personmobile %></span></li>
<li>Case Handler Email: <span><%=h @kase.person.personemail %></span></li>

Есть идеи, что не так?

Спасибо

Danny

РЕДАКТИРОВАТЬ: я получаю следующее сообщение об ошибке:

NoMethodError in Kases#show
Showing app/views/kases/show.html.erb where line #37 raised:

You have a nil object when you didn't expect it!
The error occurred while evaluating nil.personname

Отмечены следующие строки:

34: <div id="clientinfo_showhide" style="display:none">
35: <li>Client Company Address: <span class="address"><%=h @kase.company.companyaddress  %></span></li>
36: <li>Client Company Fax: <span><%=h @kase.company.companyfax %></span></li>
37: <li>Case Handler: <span><%=h @kase.person.personname %></span></li>
38: <li>Case Handler Tel: <span><%=h @kase.person.personmobile %></span></li>
39: <li>Case Handler Email: <span><%=h @kase.person.personemail %></span></li>
40: </div>

Модель для Kase выглядит следующим образом:

class Kase
belongs_to :company # foreign key: company_id
belongs_to :person # foreign key in join table

Модель для человека выглядит следующим образом:

class Person
has_many :kases # foreign key in join table
belongs_to :company

Модель для компании выглядит следующим образом:

class Company
has_many :kases
has_many :people
def to_s; companyname; end

Надеюсь, это поможет!

Ответы [ 2 ]

2 голосов
/ 28 апреля 2010

Просто чтобы написать правильный ответ, проблема была в том, что у него была таблица person_id на kases как string.

0 голосов
/ 28 апреля 2010

У вас есть личная таблица, заполненная данными?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...