0

の結果を Web ページに表示するにはどうすればよいint1 + int2ですか? そして、それが整数か文字列かを知ることができますか? これが私のコードです:

require 'sinatra'

get '/add/:int1/:int2' do
  puts #{params[:int1]} + #{params[:int2]}
end
4

4 に答える 4

0

これがうまくいくはずです:

require 'sinatra'

get '/add/:int1/:int2' do
  sum = params[:int1].to_i + params[:int2].to_i
  "#{sum}"
end

以下を変更しました。

  • 削除puts- デバッグには問題ありませんが、Sinatra は Web サーバー経由で出力するために STDOUT (CGI に基づくフレームワークが使用する可能性がある) ではなく、戻り値を使用します。ここでは、ブラウザで表示していると仮定しています。

  • 構文を削除しました#{ variable }- これは結果に計算を挿入するためのStringものであり、ここでは必要ありません。より複雑な文字列を構築している場合は、それが適している可能性があります。

  • params をFixnumに変換しました。これを使用to_iすると、常にString初期値になります。どの変換を適用するか、実際に変換可能な数値があることを確認する方法は、もう少し複雑です。気になる場合は別の質問かもしれません。

  • 最後に、数値Stringのみを返す場合、Sinatra はそれを HTTP ステータス コードとして取得するため、文字列補間を使用して数値を として返します。

計算への分離と結果の文字列への変換は、厳密には必要ないことに注意してください。ここでこれを行ったのは、2 つの部分が実際に行う必要があることの違いを示すためだけです。

于 2013-09-06T11:25:56.253 に答える
0

URLで渡す必要があります

http://yourdomain/add/2/3 #=> this will display 5  :int1 => 2, :int2 => 3

変数の埋め込み/補間には、プットで二重引用符を使用します

puts "#{params[:int1]} + #{params[:int2]}"
于 2013-09-06T11:18:03.943 に答える