2010-11-14 60 views
2

我試圖在Sinatra中創建一個頁面,以便您發佈的任何內容(在參數名稱「command」下)都會回顯給您。這是我目前的做法:在Sinatra處理POSTDATA

post '/eval' do 
    "I got #{params[:data][:command]}." 
end 

如果我嘗試發佈任何內容到/ eval,它會導致內部服務器錯誤。我究竟做錯了什麼?

回答

11

問題是您的[:data]參數是nil。解決這個問題的一種方法是刪除對[:data]的引用。試試這個。

require "rubygems" 
require "sinatra" 

post '/eval' do 
    "I got #{params[:command]}." 
end 

你可以在你的命令行(如果你使用的是基於unix的系統)上使用curl來測試它。

curl http://localhost:4567/eval -F "command=hello" 

未來,如果您提供錯誤的堆棧跟蹤與您的問題,將有助於他人。

相關問題