2016-02-17 41 views
0

(我希望我用正確的術語在標題的道歉,如果不)如何顯示對象的值關聯模型

我的「個人資料」模型與我的「地方」模型「has_and_belongs_to_many」的關係。

在「個人資料」索引頁我想列出,並顯示「簡」的「地方」,但我只能得到顯示什麼好像profile.places的內存地址

我的指數觀點:

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

顯示在屏幕上:

3:我在喝一些茶勳郵政編碼:#Place :: ActiveRecord_Associations_CollectionProxy:0x007ffe61c2fd28>


我試過某種循環,但我只是陷入一團糟。 如何顯示地點的項目?

回答

3

首先,您需要建立連接(在關聯名稱後添加to_aall)。

其次,如果你想讓它們成爲字符串,你需要對這些地方做些什麼。例如

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

謝謝你們。他們都回答了這個問題,所以我想它的禮節給第一個綠色的勾號? TheShalit-你通過建立連接意味着什麼? – Stoob

+1

當你使用關聯方法時,你得到'CollectionProxy'而不是'Array',如果你想要一個數組使用'to_a'或'all' –

1

p.places是地方對象的集合。當你把一些東西放在erb標籤中時,Rails會調用.to_s,將它變成一個字符串,這就是你在那裏看到的:將集合看作一個字符串的結果。

您需要做的是從集合中的對象中提取信息,並在其周圍構建一些html。這樣的事情:

<% p.places.each do |place| %> 
    <div><%= place.name %></div> 
<% end %> 
相關問題