私はのようになりますシナトラといくつかの方法を行う必要があります。シナトラと疑問符
ます。http:// localhostを:?1234 /追加は
をstring_to_addしかし、私はこのようにそれを宣言するとき:
get "/add?:string_to_add" do
...
end
string_to_add
paramが表示されません。
私のメソッドを宣言し、このパラメータを使用して動作させる方法を教えてください。
私はのようになりますシナトラといくつかの方法を行う必要があります。シナトラと疑問符
ます。http:// localhostを:?1234 /追加は
をstring_to_addしかし、私はこのようにそれを宣言するとき:
get "/add?:string_to_add" do
...
end
string_to_add
paramが表示されません。
私のメソッドを宣言し、このパラメータを使用して動作させる方法を教えてください。
、疑問符がquery部分からpath一部を分離します。クエリ部分は、通常、名前と値のペアで構成され、ユーザーがフォームに入力したデータと一致させるために、Webブラウザによって構築されることがよくあります。例えば、URLは次のようになります。
http://example.com/submit?name=John&age=93
ここ/submit
のパスセクション、およびクエリのセクションはage
ためname
キー、および「93」の値が「ジョン」を指しているname=John&age=93
です。
Sinatraにcreate a routeと入力すると、パス部分のみが指定されます。 Sinatraはクエリを解析し、その中のデータをparams
オブジェクトで利用可能にします。この例では、このような何かを行うことができ:シナトラルートを定義するときに?
文字を使用する場合は
get '/submit' do
name = params[:name]
age = params[:age]
# use name and age variables
...
end
が、それはオプションのURLの一部になります。 (get "/add?:string_to_add"
)を使用した例では、実際には/ad
で始まるURLに一致し、別の場合はd
となり、それ以外のものはparamsハッシュの:string_to_add
キーに入れられ、クエリセクションは個別に解析されます。言い換えれば、疑問符は先行するd
文字を任意にします。
Sinatraでクエリ文字列の「生の」テキストを取得する場合は、query_string
method of the request
objectを使用できます。ルートは?
文字、ちょうどベース/add
が含まれていないことを
get '/add' do
string_to_add = request.query_string
...
end
注:あなたの例では、このようになりますこと。
あなたのようにそれを宣言する必要がありますURLで
get "/add?:string_to_add?" do
...
end
あなたはこれを見ましたか?http://stackoverflow.com/questions/529065/how-to-use-params-with-slashes-with-sinatra? – Shmidt
このソリューションは私が必要なときには機能しません '?' '/'の代わりにbefor '*' – earsonheart