如何解決此錯誤?我想幹我的控制器,並且在每種方法中,我都會對params []進行完整性檢查,只是確保所有參數都存在。使用Rails中的lambda控制器的操作返回控制
問題在於lambda的返回。當它被定義
def validate_input(parameters)
return proc {
if parameters.find_index { |i| i.nil? }
error_message = {'Error' => 'Please fix some params'}.to_json
render :json => error_message and return
end
}
end
然後,我的控制器動作裏面我做的:
def action
...
validate_input([my_sane_id, my_other_param]).call
...
end
並且得到錯誤:意想不到的回報。
你是否有跡象表明哪一行出現意外收益?我的直覺是你可能不需要它:'render:json => error_message並返回'由於隱式返回。 –
但這正是我想要做的:驗證之後,從調用方法返回。嗯。想了一下後,我看到你在說什麼。將盡快檢查。 – valk
我只是認爲看到你使用了'proc' - 我知道在某些版本的Ruby中'proc'和'lambda'是可以互換的,但是'Proc'和'Lambda'在返回時表現不同。 http://innig.net/software/ruby/closures-in-ruby我認爲這是我正在考慮的文章。 –