红宝石。 NoMethodError(nil:NilClass 的未定义方法“fetch”)

问题描述 投票:0回答:1

我想安装redmine插件

ldap_sync
,但是当我测试它时,出现错误:

28 毫秒内完成 500 个内部服务器错误(ActiveRecord:19.6 毫秒)
NoMethodError(nil:NilClass 的未定义方法“fetch”):

这就是代码的一部分,其中有一些

fetch

...
 定义测试
    返回渲染'ldap_setting_invalid'除非@ldap_setting.valid?

    ldap_test = 参数[:ldap_test]
    用户 = ldap_test.fetch(:test_users, '').split(',')
    groups = ldap_test.fetch(:test_groups, '').split(',')
    [用户,组].each {|l| l.map(&:strip).reject(&:空白?) }


    @test = LdapTest.new(@ldap_setting)
    @test.bind_user = ldap_test[:bind_user]
    @test.bind_password = ldap_test[:bind_password]

    如果@test.valid?
      @test.run_with_users_and_groups(用户,组)
    别的
      渲染“ldap_test_invalid”
    结尾
  结尾
...

这就是代码的一部分,其中有一些

fetch
在 redmine 插件中:

...
 定义测试
    返回渲染'ldap_setting_invalid'除非@ldap_setting.valid?

    ldap_test = 参数[:ldap_test]
    用户 = ldap_test.fetch(:test_users, '').split(',')
    groups = ldap_test.fetch(:test_groups, '').split(',')
    [用户,组].each {|l| l.map(&:strip).reject(&:空白?) }


    @test = LdapTest.new(@ldap_setting)
    @test.bind_user = ldap_test[:bind_user]
    @test.bind_password = ldap_test[:bind_password]

    如果@test.valid?
      @test.run_with_users_and_groups(用户,组)
    别的
      渲染“ldap_test_invalid”
    结尾
  结尾
...

我使用这个插件: https://github.com/eea/redmine_ldap_sync

有关 Ruby 和 Rails 版本的信息:

Ruby 版本 2.7.6-p219 (2022-04-12) [x86_64-linux]
  Rails 版本 5.2.6.3
ruby ldap redmine
1个回答
0
投票

变量

ldap_test
为零,因为params没有ldap_test键值

因此调用

ldap_test.fetch
会引发此错误

© www.soinside.com 2019 - 2024. All rights reserved.