用rails generate创建一个控制器会导致一个奇怪的错误

时间:2020-06-09 20:11:14

标签: ruby-on-rails ruby rubygems dyld

我今天尝试启动一个简单的Rails应用程序以刷新我的知识,并遇到了一个非常奇怪的问题...

  1. 已创建的应用(使用新的应用名称)。
  2. 已创建具有索引操作的控制器(rails g控制器站点索引)。
  3. 将根路由设置为site#index。
  4. 启动Rails服务器。

服务器尝试呈现站点的索引视图,但突然中止,并出现以下错误:

df <- data.frame(matrix(c("A", NA, NA, "B", NA, NA, "C", NA, NA, 1:9),
byrow = TRUE, nrow = 2))

我尝试了(失败):

  • 将我的ruby版本升级,然后将我的rails版本升级到最新版本。
  • 重新安装我所有的宝石。
  • 删除ffi_c.bundle的路径并重新安装ffi。

奇怪的是,如果我手动创建控制器和视图,一切正常!

我看到了一个有关某个相关问题的建议,试图将计算机上的C编译器更改为默认值,但是我不明白为什么这样做是必要的,我想对正在发生的事情有更深入的了解上。

2 个答案:

答案 0 :(得分:2)

我遇到了同样的问题,是的,该文件存在。我将项目回滚到ffi'〜> 1.12.2',并且再次正常运行。

答案 1 :(得分:2)

问题似乎与libffi版本冲突有关。

解决方法:gem inst ffi---disable-system-libffi

我提出了一个问题,请参见此处:https://github.com/ffi/ffi/issues/791