在Rails中调用来自不同模型的数据

时间:2010-04-28 13:31:46

标签: ruby-on-rails database

我需要能够从不同的模型调用数据 - 不仅仅是一个字段,而是任何一个字段。

目前我有以下型号:

kase
person
company
party

我可以使用以下信息从公司调用信息到kase,从人到kase:

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

任何想法都错了吗?

谢谢,

丹尼

编辑:我收到以下错误消息:

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 个答案:

答案 0 :(得分:2)

只是为了写一个正确的答案,问题是他将person_idkases作为string

答案 1 :(得分:0)

您是否在人员表中填充了数据?