0

模型在我的 Rails 应用程序中的关联方式,如果我尝试使用这样的代码列出用户拥有的许可证

Licensed in <%= answer.user.licenses.map(&:state) %>

它会像这样打印出来

Licensed in ["New York"] 

由于它是一个数组,我可以像这样删除数组括号

<%= answer.user.licenses.map(&:state)[0] %>

我得到了我想要的结果

Licensed in New York

但是,如果用户拥有多个许可证(这是可能的),这不是一个好的解决方案,因为应该列出每个许可证。

因此,我尝试了这个

   <% answer.user.licenses.map(&:state).each do |state| %>
    <%= state %>
   <% end %>

但是,这不会在许可证之间添加“智能”逗号,智能意味着“在必要时添加注释,但不要在末尾添加注释”。

在这种情况下,代码应该是什么样子才能实现我想要做的事情。我不确定我应该用谷歌搜索的关键字来解决这个问题。

4

2 回答 2

4

尝试这个

answer.user.licenses.map(&:state).join(',')

这将,在数​​组的每个元素之间添加。

于 2013-04-20T23:27:48.853 回答
4

在 Rails 中,您可以使用to_sentence. 这会将 a 放在,所有元素之间,并将单词and放在倒数第二和最终单词之间。

于 2013-04-20T23:29:36.460 回答