" PARAMS"不适用于Ruby(Sinatra框架)

时间:2014-11-25 02:38:45

标签: ruby forms sinatra

我有一个简单的Sinatra应用程序,我想在其中创建一个表单,以便用户可以更改其编号。但是,我甚至没有改变这个数字,因为" params"不管用。一切都运作良好。我可以看到URL中的参数,但是如果我打印" params"除了" Echo"。

class MyApp < Sinatra::Application
  register Sinatra::ActiveRecordExtension

  get '/changenumber' do
    p params
    p params[:mynumber]
    p "Echo"
  end
end

表格:

<form action="/changenumber" method="GET">
    Phone: <input type="text" name="mynumber" value="<%= user.number %>">
    <input type="submit" value="Change Number">
</form>

1 个答案:

答案 0 :(得分:2)

正如vu-minh-tan指出你应该使用Post而不是Get。

我重建了你的例子并且效果很好:

{"mynumber"=>"test"}
"test"
"echo"
IP - - [TIME] "GET /changenumber?mynumber=test HTTP/1.1" 200 4 0.0005

基于此,我认为您的问题是您只需锁定浏览器中的输出即可。这只是代码中的最后一行。你应该尝试这样的事情:

get '/changenumber' do
    "Params: #{params} mynumber: #{params[:mynumber]}"
end