使用cURL的Sinatra + Redis和POST请求

时间:2016-11-10 16:17:48

标签: ruby curl redis sinatra

我正在学习Sinatra和Redis构建一个小的URL Shortener。 这是我的POST路线:

helpers do
 include Rack::Utils
 alias_method :h, :escape_html

 def random_string(length)
  rand(36**length).to_s(36)
 end
end

post '/' do
 if params[:url].present?
 content_type :json
 @shortcode = random_string 5
 short_url = redis.setnx "links:#{@shortcode}", params[:url]
 short_url.to_json
 end
end

此POST方法将以长URL作为输入,并以jSON格式生成一个短输出。

但是,当我尝试使用

进行cURL时
curl -H "Content-Type: application/json" -X POST -d '{"url": "http://mywebsite.com"}' http://localhost:4567

失败了,我得到了

NoMethodError: undefined method `present?' for nil:NilClass.

任何提示?

0 个答案:

没有答案