我试图将我正在使用的 Sinatra 网站的 Ruby 版本更新到 2.1.3
。当我尝试捆绑时,我遇到了一些错误。然后我删除了 Gemfile.lock
并继续进行 bundle install
。但是当我运行该网站时,我注意到了类似
NoMethodError at /auth/login
undefined method `join' for #<String:0x000000062d3830>
我的观察如下。
- 降级到 Ruby 2.1.2 - 问题得以保留
- 检查项目,因为它以前(
Ruby 2.1.2
和旧的Gemfile.lock
)工作 - 错误出现在
yield_content(:head)
标签中。- 删除了所有
yield_content
标签 - 呈现页面的 slim 文件时出错 -
slim :index, :layout => :layout, :locals => body_locals
- 删除了所有
可能是什么错误?我在 Gemfile.lock
前后创建了一个差异:https://gist.github.com/ziyan-junaideen/fb903abbdafdc2d4a02f
终端错误输出:https://gist.github.com/ziyan-junaideen/54bff4f05a5a7beeedff
我认为这是一些 SLIM 错误,并将 Slim 降级到 2.0.3,这曾经是在 bundle 安装之前,但没有运气。
非常感谢任何建议。
谢谢
最佳答案
我已经通过在 slim: 2.0.3 和 temple: 0.6.8 版本中重新安装 slim 和 temple 解决了这个问题, 它可能在寺庙里,'因为降级 slim 是不够的
关于ruby - Sinatra - #<String> 的未定义方法 `join' - 删除 Gemfile.lock 后,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26526650/