如何显示对象关联模型的值

时间:2016-02-17 15:05:29

标签: ruby-on-rails

(我希望如果没有,我会在标题道歉中使用正确的术语)

我的'个人资料'模型与我的'地方'模式有'has_and_belongs_to_many'关系。

在'profile'索引页面上,我想列出并显示'profile'的'places',但我只能显示profile.places的内存地址

我的索引视图:

<% @profile.each do |p| %>
  <P><%= p.id %>: <%= p.bio %> Postcodes: <%= p.places %></p>
<% end%>

在屏幕上显示:

3:我正在喝点茶Post邮编:#Place :: ActiveRecord_Associations_CollectionProxy:0x007ffe61c2fd28&gt;

我尝试过某种循环,但我只是搞得一团糟。 如何显示地点的项目?

2 个答案:

答案 0 :(得分:3)

首先,您需要建立连接(在关联名称后添加to_aall)。

其次,如果你想要它们作为字符串,你需要对这些地方做点什么。例如

p.places.map(&:postcode).join(', ')

答案 1 :(得分:1)

/proc/2222/comm是地方对象的集合。当你在erb标签中放入一些内容时,Rails会在其上调用p.places,将其变成一个字符串,这就是你在那里看到的内容:将一个集合视为一个字符串的结果。

您需要做的是从集合中的对象中提取信息,并围绕它构建一些html。像这样:

.to_s