0

我已经从 Rails3 迁移到 Rails4。以下代码在 Rails3 中返回 Array,但在 Rails4 中返回带有非法字符的字符串。

Dir.glob("app/assets/images/flowers/*")

Rails3 中的示例输出

["app/assets/images/flowers/rose.png", "app/assets/images/flowers/lilly.png"]

Rails4 中的输出

"\x04\b[dI\"8app/assets/images/flowers/rose.png\x06:\x06ETI\"4app/assets/images/flowers/lilly.png"

如何获得与 Rails3 相同的输出格式?

4

2 回答 2

1

尝试这个

 files = Dir.glob("app/assets/images/flowers/*").map do |f| File.basename f end
于 2013-09-26T09:09:14.067 回答
0

Dir与 Rails 无关——它是纯 Ruby 类。是对它的 API 参考。根据 API,它应该总是返回一个数组。我的猜测是,当您将 Rails 3 升级到 4 时,您在 Ruby 安装中搞砸了一些东西。

我认为最好的选择是干净安装 ruby​​/rails。您还可以尝试Dir.glob()从 IRB 和 rails 控制台运行以查看错误发生的位置;并从那里开始。

于 2013-09-26T09:04:28.810 回答