の結果を Web ページに表示するにはどうすればよいint1 + int2
ですか? そして、それが整数か文字列かを知ることができますか? これが私のコードです:
require 'sinatra'
get '/add/:int1/:int2' do
puts #{params[:int1]} + #{params[:int2]}
end
これがうまくいくはずです:
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 つの部分が実際に行う必要があることの違いを示すためだけです。
URLで渡す必要があります
http://yourdomain/add/2/3 #=> this will display 5 :int1 => 2, :int2 => 3
変数の埋め込み/補間には、プットで二重引用符を使用します
puts "#{params[:int1]} + #{params[:int2]}"