首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Ruby未定义方法`to_sentence‘

Ruby未定义方法`to_sentence‘
EN

Stack Overflow用户
提问于 2021-07-02 09:45:03
回答 1查看 48关注 0票数 0

我正在做一个关于Codewar的Ruby训练,我被一些东西卡住了。

我必须这样做:

代码语言:javascript
复制
list([ {name: 'Bart'}, {name: 'Lisa'}, {name: 'Maggie'} ])
# returns 'Bart, Lisa & Maggie'

所以我尝试了这段代码:

代码语言:javascript
复制
def list names
  names.map(&:values).flatten.to_sentence(last_word_connector: ' &')
end

但不幸的是,我有这个错误:

代码语言:javascript
复制
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‘行不通……

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-07-02 09:51:51

Array#to_sentence是一种ActiveSupport方法。ActiveSupport是一个Ruby gem,它将许多有用的实用方法添加到现有的类中。您将需要安装并要求gem确保其已加载

代码语言:javascript
复制
gem install activesupport

然后,在你文件的顶部,

代码语言:javascript
复制
require 'active_support/all'

如果你正在编写一个Rails项目,那么你可以免费获得ActiveSupport。但是如果你在写标准的Ruby,你就必须需要它。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68218672

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档