2017-03-03 11 views
0

내 방법 중 하나에 대해 다음 작동하지 않습니다. 나는 공식 문서에서 모든 것을 곧바로 복사했다.특정 조건에서 루비/포도 필요한 매개 변수

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'사용자는 '관리'와 '비밀번호'를 제공해야

오류 :

[ 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'
/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 '

+0

가 오류를 표시해야해야한다. –

답변

0

'주어진'에만 포도 버전 0.17, 구현 이후 PROC을 받아 병합 요청 (MR) 1443. 따라서 업데이트하거나 실행 불가능한 경우이 MR을 0.16.2로 다시 포팅 해보십시오.

Here's 귀하의 버전에 해당하는 README.

예를 들어 authenticationType 매개 변수의 유형은 Array[String]이므로 (적어도 포도가 0.17 인 경우) proc에는 Hashie::Array이 수신됩니다.

이 의미

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

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