bugfix> ruby-on-rails > 投稿

私はRuby API開発にかなり慣れていないので、私の routes.rb に以下のエンドポイントを作成しました

get "/users/active_users/:since"

ただし、paramが指定されていない場合、paramのデフォルトを特定の値に設定する必要があります。これを強制するにはどうすればよいですか?また、paramが英数字ではなく整数であることを強制したい。ヘルプは大歓迎です!

回答 1 件
  • get "/users/active_users/:since"
    
    

    このルートを強制的に params[:since] に与えることにより、  、そうでない場合はエラー not routes matches がスローされます

    だからここで私はあなたがルートを作ることをお勧めします

    get "/users/active_users"
    
    

    get だから  リクエストを入力してより多くの影響を与えないようにするには、 params[:since] を追加します  次のようなルートを使用したクエリ:-

    /users/active_users?since=1999
    
    

    そして、コントローラーで params[:since] = 1999 を取得します

    私が知る限り、整数の params のみを受け入れるようにルートを強制することはできません  しかし、それはコントローラー側で処理することができます

    params[:since].is_a? Integer
    => true
    
    

    または

    params[:since].to_i
    
    

あなたの答え