模型在我的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 %>
但是,这不会在许可证之间添加“智能”逗号,聪明意思是“在必要时添加注释但不在最后添加注释”。
在这种情况下,代码应该是什么样才能实现我正在尝试做的事情。我不确定我应该谷歌的关键字来解决这个问题。
答案 0 :(得分:4)
试试这个
answer.user.licenses.map(&:state).join(',')
这将在数组的每个元素之间添加,
。
答案 1 :(得分:4)
在Rails中,您可以使用to_sentence
。这将在所有元素之间放置,
,并将单词and
放在倒数第二个和最终单词之间。