ruby - Ruby 未定义方法“to_sentence”
问题描述
我正在对 Codewars 进行 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'不起作用......
谢谢。
解决方案
Array#to_sentence
是一种 ActiveSupport 方法。ActiveSupport 是一个 Ruby gem,它为现有的类添加了许多有用的实用方法。您需要安装并要求 gem 确保已加载
gem install activesupport
然后,在文件的顶部,
require 'active_support/all'
如果您正在编写 Rails 项目,那么您可以免费获得 ActiveSupport。但是,如果您正在编写标准 Ruby,则必须要求它。
推荐阅读
- angular - Angular ng2-search-filter 过滤多个
- mysql - MySQL内部连接问题 - 我做错了什么?
- kubernetes - 如何在 WSL 上安装 Fluxctl
- vue.js - 如何在 Nuxt.js Vue 中自动刷新令牌
- winapi - win32com .Formula = "" 功能不起作用?
- formula - 当我想在谷歌应用程序脚本表中编写相应的公式时出现错误(解析错误)
- sql - 限制 regexp_substr 表达式的第 2 部分
- javascript - Javascript数组数学计算结果
- javascript - 必应地图 - 无法在 clusteredPinCallback 中设置和访问图钉属性
- python - 子功能和功能练习