2012-10-25 37 views
1

我正在嘗試將信息從文本表單移動到使用CGI的新網頁。爲此,我在表格中將action設置爲action="new.html"。然後,在我的.rb文件的相關部分,我有:如何在使用Ruby和Sinatra編寫的Heroku應用程序中使用CGI?

get "/new.html" do 
    @graph = Koala::Facebook::API.new(session[:access_token]) 
    @app = @graph.get_object(ENV["FACEBOOK_APP_ID"]) 

    if session[:access_token] 
    @query=CGI.new()   # Line of interest 
    @[email protected]["tool_1"] # Line of interest 
    end 

    erb :my_tools_F 
end 

post "/new.html" do 
    redirect "/new.html" 
end 

新的Web頁面加載,但@input是空白的,當我把它在.erb文件。在這部分腳本之前,我確實需要CGI。我的網絡主機是Heroku,並且.erb文件都位於名爲views的目錄中。該應用程序構建在Facebook上推出。

示例代碼是here

+0

我更新了我的答案。看看它是否可以幫助你。 – sunnyrjuneja

回答

1

看來你正在試圖獲取表單的參數。我在這裏有另一個答案,但這不適合你。你可以很容易地做到這一點,而不需要CGI,你應該考慮使用內置的方法來做到這一點。但是,在你做到這一點之前,我注意到你的github帖子中有一些錯誤。

您的文件夾Views應爲views。小但重要。我無法正確呈現網頁。

在您new.erbindex.erb第33行記載:

<input type="submit" value="Add""> 

有一個最後的額外"。只是將其刪除的樣子:

<input type="submit" value="Add"> 

最後,做你需要做什麼:

get "/new.html" do 
    erb :new 
end 

post "/new.html" do 
    @input = params[:tool_1] 
    erb :new 
end 

,而不是你做了什麼。在http://www.sinatrarb.com/intro上尋找params。

+0

謝謝你的嘗試,但是當我使用這個時,「@input」仍然是空的。 – Ryan

+0

我很樂意幫助您調試。你能否編寫一個簡化版本的代碼來複制沒有facebook身份驗證的錯誤?張貼在gist,github或其他上。 – sunnyrjuneja

+1

我會,但是如果我沒有遇到任何障礙,新版本將在明天晚些時候纔會啓動。 – Ryan

相關問題