【发布时间】:2015-10-27 01:43:44
【问题描述】:
刚刚涉足 Ruby 世界,并建立一个基于 Sinatra 的 API。
这是我的路线定义之一。 not_found 在被称为 ¬_found 时有效,但它给出 '2015-10-23 16:31:59 - NoMethodError - Sinatra::FileService::GetFiles:Module:' 的未定义方法 `status' 当称为 'not_found.( params [ 'obsId'])'。
有人可以提供任何方向吗?非常感谢!
def self.registered(app)
not_found = -> id = 'undefined' {
status 404
content_type :json
{
:message => settings.messages['get']['404'],
:data => {
id: _id
}
}.to_json
}
found = -> _id {
status 200
content_type :json
{
:message => settings.messages['get']['200'],
:data => {
:id => _id
}
}.to_json
}
app.get '/', ¬_found
app.get '/:obsId' do
if params['obsId'] == '1'
found.( params['obsId'] )
else
not_found.( params['obsId'] )
end
end
end
【问题讨论】:
-
你确定要在里面吗?
not_found.( params['obsId'] )在我看来不合适。试试not_found[params['obsId']]或not_found.call(params['obsId'])。 -
我使用的是支持 .() 而不是 .call() 的“ruby 2.0.0p481”。 (如果我错了,请纠正我)
-
我的错。有很多东西要跟上!