Rails 2.3.11 app to Ruby 1.9.2 throw"不支持从define_method()定义的方法中传递super的隐式参数"错误

时间:2012-01-27 15:31:20

标签: ruby-on-rails ruby

刚刚在新的Windows 7机器上删除了Rails安装程序。克隆了我的Rails 2.3.11应用程序并安装了所有宝石而没有任何问题,但是当我开始点击应用程序时,我在几个地方遇到了这个:

“不支持从define_method()定义的方法传递super的隐式参数。明确指定所有参数。”

阅读与相同消息相关的几个主题,但我并不了解我的情况。

我确实注意到使用SearchLogic和我使用AuthLogic的登录表单在搜索表单上弹出错误。想知道这个问题在1.9.x和这两个* Logic插件之间是否存在相关性?

例如,其中一个错误是在我的登录表单中引用此行?

<%= f.text_field :login %>

感谢任何指导。

2 个答案:

答案 0 :(得分:1)

您使用的是FormBuilder,也许是使用旧版Advanced Rails Recipes一书中的ErrorHandlingFormBuilder吗?如果是这样,您需要查看表单构建器代码。

您将看到以下代码:

  build_shell(field, options) do
    super
  end

这就是造成你问题的“超级”线。将其更改为:

  build_shell(field, options) do
    super(name, *args)
  end

答案 1 :(得分:0)

原来我是个白痴,我试图在Ruby 1.9.2上运行我的Rails 2.3.8应用程序: - )