Rails返回带有haml输出的括号

时间:2014-05-16 02:39:41

标签: ruby-on-rails ruby

我在页面上显示记录列表,每条记录都有几个子类别。我正在以略小和轻的字体显示记录的标题及其下方的相关类别。

出于某种原因,当显示类别时,将返回括号。这是从has_many:through关系生成的,因此返回一个数组。

以下是视图中的haml:

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

以下是向用户显示的结果:

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

请注意,它会被格式化为数组!我的最终用户不希望看到格式化为哈希或数组的数据。

你认为发生了什么原因吗?!

1 个答案:

答案 0 :(得分: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