gpt4 book ai didi

ruby - 如何为多条路线编写相同的要求,例如发布,放置? ( ruby 葡萄)

转载 作者:数据小太阳 更新时间:2023-10-29 07:24:57 27 4
gpt4 key购买 nike

如何避免重复代码?

resource 'api/publication/:publicationName' do

params do
requires :type, type: String, regexp: /^(static|dynamic)$/i
requires :name, type: String, regexp: /^[a-z0-9_\s]+$/i
requires :liveStartDate, type: String, regexp: dateRegexp
optional :liveEndDate, type: String, regexp: dateRegexp
requires :query, type: String
end
post '/dynamic' do
authenticate!
save_or_update(params)
end

params do
requires :type, type: String, regexp: /^(static|dynamic)$/i
requires :name, type: String, regexp: /^[a-z0-9_\s]+$/i
requires :liveStartDate, type: String, regexp: dateRegexp
optional :liveEndDate, type: String, regexp: dateRegexp
requires :query, type: String
end
put '/dynamic/:id' do
authenticate!
save_or_update(params)
end

end

最佳答案

在较新版本的 Grape 中,您可以创建可重用的命名参数组。例如:

resource 'api/publication/:publicationName' do
helpers do
params :common do
requires :type, type: String, regexp: /^(static|dynamic)$/i
requires :name, type: String, regexp: /^[a-z0-9_\s]+$/i
requires :liveStartDate, type: String, regexp: dateRegexp
optional :liveEndDate, type: String, regexp: dateRegexp
requires :query, type: String
end
end

params do
use :common
end
post '/dynamic' do
authenticate!
save_or_update(params)
end

params do
use :common
end
put '/dynamic/:id' do
authenticate!
save_or_update(params)
end
end

这样做的一个好处是,您可以通过为不同的命名参数包含多个 use 语句来混合不同的参数组。

关于ruby - 如何为多条路线编写相同的要求,例如发布,放置? ( ruby 葡萄),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16710113/

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