我正在做一个关于Codewar的Ruby训练,我被一些东西卡住了。
我必须这样做:
list([ {name: 'Bart'}, {name: 'Lisa'}, {name: 'Maggie'} ])
# returns 'Bart, Lisa & Maggie'所以我尝试了这段代码:
def list names
names.map(&:values).flatten.to_sentence(last_word_connector: ' &')
end但不幸的是,我有这个错误:
main.rb:4:in `list': undefined method `to_sentence' for ["Bart", "Lisa", "Maggie", "Homer", "Marge"]:Array (NoMethodError)
Did you mean? to_set
from main.rb:6:in `<main>'我已经找了好几个小时了,我不明白为什么'to_sentence‘行不通……
谢谢。
发布于 2021-07-02 09:51:51
Array#to_sentence是一种ActiveSupport方法。ActiveSupport是一个Ruby gem,它将许多有用的实用方法添加到现有的类中。您将需要安装并要求gem确保其已加载
gem install activesupport然后,在你文件的顶部,
require 'active_support/all'如果你正在编写一个Rails项目,那么你可以免费获得ActiveSupport。但是如果你在写标准的Ruby,你就必须需要它。
https://stackoverflow.com/questions/68218672
复制相似问题