gpt4 book ai didi

Ruby/Grape 在特定条件下需要参数

转载 作者:太空宇宙 更新时间:2023-11-03 16:42:27 25 4
gpt4 key购买 nike

对于我的其中一种方法,以下方法不起作用。我几乎直接从官方文档中复制了所有内容:

params do
requires :authenticationType, type: Array[String], values: ['LOCAL', 'AD']
given authenticationType: ->(val) { val == 'LOCAL' } do
requires :admin, type: String, allow_blank: false, regexp: /^[\w\.\@-]{1,64}$/
requires :password, type: String, allow_blank: false, regexp: /^[\w\.\@-]{1,64}$/
end
end

它在“给定”行上给出错误。任何人都知道出了什么问题。我的目标:仅当 'authenticationType' == 'LOCAL' 时,用户才应提供 'admin' 和 'password'

错误:

[ 2017-03-03 00:39:18.4848 14970/7f5d0603f700 age/Cor/App/Implementation.cpp:304 ]: Could not spawn process for application /vagrant/masterapi: An error occurred while starting up the preloader. Error ID: 0bd79149 Error details saved to: /tmp/passenger-error-3OYsdJ.html Message from application: Grape::Exceptions::UnknownParameter (Grape::Exceptions::UnknownParameter)
/usr/local/lib/ruby/gems/2.3.0/gems/grape-0.16.2/lib/grape/dsl/parameters.rb:170:in block in given'<br/>
/usr/local/lib/ruby/gems/2.3.0/gems/grape-0.16.2/lib/grape/dsl/parameters.rb:169:in
each'
/usr/local/lib/ruby/gems/2.3.0/gems/grape-0.16.2/lib/grape/dsl/parameters.rb:169:in given' /vagrant/masterapi/controllers/papi_controller.rb:93:in
block in '

最佳答案

'given' 仅从 grape 版本 0.17 开始接受 proc,在合并请求 (MR) 中实现 1443 .因此,您应该更新,或者如果这不可行,请尝试将此 MR 向后移植到 0.16.2。

Here's您的版本的自述文件。

此外,在您的示例中,authenticationType 参数是 Array[String] 类型,因此(至少在 grape 0.17 中),proc 将收到一个 哈希::数组

这意味着:

->(val) { val == 'LOCAL' }

应该是

->(val) { val.first == 'LOCAL' }

关于Ruby/Grape 在特定条件下需要参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42568710/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com