Rails4强参数抛出NoMethodError



我只在一台计算机上遇到了一个奇怪的行为。

当像这样调用强参数时(示例取自SessionController,但在使用强参数的所有地方都失败)

params.require(:session).permit(:email, :password, :remember)

我收到以下错误:

NoMethodError
private method `require' called for<ActiveSupport::HashWithIndifferentAccess:0x000001103230c8>

该代码在任何其他计算机(开发人员和生产系统)上都能很好地工作,以前也在这台计算机上工作过。我使用的是Mac操作系统(10.9)、Ruby(2.2.0)、Rails(4.2.x)。我使用rbenv作为Ruby版本管理器。

这一定是我本地安装的问题。问题发生后,我重新安装了rails,尝试了另一个ruby版本,更新了所有相关工具。

谢谢你的帮助。

在4.x之前的Rails中,控制器的params对象是一个无差别访问的散列,而在Rails 4+中是一个ActionController::Parameters实例。因此,我怀疑该机器中用于该项目的Rails版本是4.x.之前的版本

如果rails-version输出了一些意外的东西,请尝试通过运行重新安装Gemfile.lock定义的所有gem

bundle exec gem pristine --all

在项目的根文件夹中。

相关内容

  • 没有找到相关文章

最新更新