Почему мой маршрут с двумя переменными не работает в моем приложении Sinatra? - PullRequest
0 голосов
/ 13 мая 2011

У меня есть простое приложение sinatra следующим образом:

get '/api/v1/:api_id/:init/' do
  @api_id = params[:api_id]
  @init = params[:init]

  @init_date = @init.split("-")      
  initial_date = Time.utc(@init_date[0], @init_date[1], @init_date[2]) # 2011-05-01 00:00:00 UTC  

  initial_date
end

Когда я выбираю http://localhost:4567/api/v1/12345/2011-10-1/, я получаю "2011-10-1", и ничто не может изменить это!

Что я делаю не так?

1 Ответ

1 голос
/ 13 мая 2011
  1. Существуют более простые способы получения параметров и анализа даты:

    phrogz$ cat date_parse.rb 
    require 'sinatra'
    require 'date'
    get '/foo/bar/:id/:date' do |id,date|
      initial_date = Time.parse( date )
      initial_date.to_s
    end
    
    phrogz$ curl http://localhost:4567/foo/bar/42/2011-10-05
    2011-10-05 00:00:00 -0600
    
    phrogz$ curl http://localhost:4567/foo/bar/42/2011-11-1
    2011-11-01 00:00:00 -0600
    

    Это не работает для вас? Каждый раз, когда вы вводите другой URL, вы получаете разные ответы в зависимости от параметров в хэше.

  2. Возможно, вы действительно хотите использовать Date вместо Time?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...