我希望有一个GET路由,它将查询API来收集数据,然后重定向到包含该数据的POST以保存到DB中。例如:
get '/query/twitter/company/:name' do
get_number_of_tweets_for_day( params[:name] )
end
POST '/company/tweets/' do
company.tweets.create(:date => time_now, :count => num_tweets)
end
如何从GET路由中的函数返回的数据中设置参数,并将它们传递到POST路由,以便可以保存到DB?
发布于 2014-01-09 00:49:24
您的代码有两个完全独立的端点,它们在单独的API请求中被调用。您可以将其设置为一个POST请求,即:
post '/company/:name/tweets/' do
num_tweets = get_number_of_tweets_for_day( params[:name] )
company.tweets.create(:date => time_now, :count => num_tweets)
end
作为替代方案,为了在后续请求之间持久化数据,您通常会使用会话:
enable :sessions
get '/query/twitter/company/:name' do
session['num_tweets'] = get_number_of_tweets_for_day( params[:name] )
end
post '/company/tweets/' do
company.tweets.create(:date => time_now, :count => session['num_tweets'])
end
从GET到POST的重定向是不可能的,因为浏览器在重定向后将保持请求方法不变。你也必须把你的第一条路由写成帖子。
https://stackoverflow.com/questions/21001026
复制相似问题