2014-05-16 63 views
0

我在頁面上顯示記錄列表,每條記錄都有幾個子類別。我以較小和較輕的字體顯示記錄的標題及其下方的相關類別。Rails使用haml輸出返回括號

由於某些原因,顯示類別時,會返回括號。這是從has_many:through關係生成的,所以返回一個數組。

這是我的觀點HAML:

= location.services.map {|service| service.name } 

下面是結果作爲向用戶顯示:

["Plumbing", "House Repair", "Lawn Care"] 

請注意這個,就好像它被格式化爲一個數組返回!我的最終用戶不希望將數據格式化爲散列或數組。

你是否看到有這種情況發生?

+0

'我的最終用戶的唐'不想看到格式化爲散列或數組的數據。「大聲笑 – phoet

回答

3

發生這種情況的原因是map會在結果中返回一個數組。由於您不想向用戶顯示數組,因此可以在返回的數組上使用join函數。

1.9.3-p429 :011 > res = ["Plumbing", "House Repair", "Lawn Care"] 
1.9.3-p429 :013 > res.join(', ') 
=> "Plumbing, House Repair, Lawn Care" 

所以,你可以這樣做:

location.services.map {|service| service.name }.join(', ') 

,或者您也可以探索軌道to_sentence,這將給你更多的用戶友好的輸出:

location.services.map {|service| service.name }.to_sentence 
# returns: Plumbing, House Repair and Lawn Care 
+0

這沒有竅門!我使用.join('')結束記錄之間的空間。再次感謝! – dingalingchickenwiing