Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 强参数引发';堆栈级别太深';试验中_Ruby On Rails_Strong Parameters - Fatal编程技术网

Ruby on rails 强参数引发';堆栈级别太深';试验中

Ruby on rails 强参数引发';堆栈级别太深';试验中,ruby-on-rails,strong-parameters,Ruby On Rails,Strong Parameters,我正在将rails 3.2应用程序从默认的质量分配保护移动到强参数。我在application.rb中禁用了*whitelist_attributes*,并在模型中添加了必需的include语句 在我的控制器中,我允许在创建模型时使用正确的属性 def create @user = User.new user_params ... end protected def user_params params.require(:user).permit(:email, :name, :l

我正在将rails 3.2应用程序从默认的质量分配保护移动到强参数。我在application.rb中禁用了*whitelist_attributes*,并在模型中添加了必需的include语句

在我的控制器中,我允许在创建模型时使用正确的属性

def create
  @user = User.new user_params
  ...
end

protected
def user_params
  params.require(:user).permit(:email, :name, :locale, :password, :password_confirmation)
end
这在开发和生产中效果良好。但由于某种原因,在我的测试环境中,它会中断。我对create操作使用了一个函数测试,该操作使用散列进行简单的post。在上面的代码片段的第二行,我发现“堆栈级别太深”

  1) Error:
test_should_get_create(UsersControllerTest):
SystemStackError: stack level too deep
    /home/martijn/.rvm/gems/ruby-1.9.3-p448/gems/activesupport-3.2.15/lib/active_support/notifications/instrumenter.rb:23
这不仅仅发生在我的控制器上。当我在模型或测试代码中调用诸如update_属性之类的函数时,也会发生这种情况。但在开发中,它运行良好

当我删除include-ActiveModel::禁止属性保护时,它也可以工作

有什么想法吗