2011-11-14 18 views
2

我已經跳入學習Ruby直接與哈姆爾帕德里諾。使用帕德里諾形式助手和formbuilder - 入門

大多數Padrino文檔假定紅寶石/西納特拉等知識的高層次...

我找的,我可以瀏覽到看到的東西是如何工作的樣本。一個特定的場景是做一個簡單的表單。在我的主要(索引)頁面上,我想要一個帶有按鈕的「註冊」編輯框。

#app.rb 
... 
get :index, :map => "/" do 
    @user = "test" 
    haml: index 
end 

get :signup, :map => "/signup" do 
    render :haml, "%p email:" + params[:email] 
end 
... 

筆者認爲:

#index.haml 
... 
#signup 
    -form_for @user, '/signup', :id => 'signup' do |f| 
    = f.text_field_block :email 
    = f.submit_block "Sign up!", :class => 'button' 
... 

這是行不通的。 (/signup)中的render從未做過任何事情。

注意,我知道我需要定義我的模型等...;但我正在努力達到這個目標。

與其僅僅告訴我我在做什麼錯在這裏,我真正喜歡的是一個相當完整的Padrino示例應用程序,它使用表單(博客示例僅覆蓋Padrino表面區域的一小部分)。

我在哪裏可以找到很多偉大的Padrino樣本? :-)

編輯

下面的答案是在多個樣本指着我很有幫助。但是我仍然沒有發現我的代碼上面有什麼問題。

我稍微在我的黑客改變了這一點,我仍然沒有得到:email PARAM正確傳遞:

#index.haml 
... 
    #signup 
    - form_for :User, url(:signup, :create), :method => 'post' do |f| 
     = f.text_field_block :email 
     = f.submit_block "Sign up!" 
...  

#signup.rb 
... 
post :create do 
    @user = User.new(params[:email]) 
    ... 
end 

編輯新增型號:

#user.rb 
class User 
    include DataMapper::Resource 
    property :id, Serial 
    property :name, String 
    property :email, String 
    ... 
end 

在運行此,​​總是nil。我把它和其他一些樣品進行了比較,我看不出我做錯了什麼。幫幫我!

回答

2

您可以瀏覽一些示例站點位置:https://github.com/padrino/padrino-framework/wiki/Projects-using-Padrino

也可以瀏覽padrinorb.com這裏來源:https://github.com/padrino/padrino-web

最好的辦法也就是生成管理員:padrino g admin你應該看到如何形成作品。

標籤form除非你指定:method => :get|:put|:delete所以在你的控制器,你必須由於您使用form_for :user PARAMS改變:get:post

post :signup, :map => "/signup" do ...

params[:user]因此要獲得電子郵件,就必須在默認情況下執行post行動投入params[:user][:email]

+0

鏈接到'Projects-using-Padrino'非常有幫助。我搜索和搜索,從未見過。請注意'管理員'使用partials,我不(所以)它沒有幫助。我還沒有走出困境,但你的回答是有幫助的。謝謝。 – tig

+0

另外,我所詢問的'render'是在':signup'處理程序中。我遇到的問題是'params [:email]'總是'nil' ... – tig

+0

嘗試一個簡單的'text_field:email' – DAddYE