我正在学习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.
任何提示?