2011-11-14 1 views
2

私はRubyを学ぶために、Hamrと一緒にPadrinoにまっすぐ進むことにしました。Padrinoフォームヘルパーとフォームビルダを使用する - はじめに

Padrinoの文書のほとんどは、私は、私は物事がどのように動作するか確認するために閲覧することができ、サンプルを探しています

...などのRuby /シナトラの知識の高レベルを想定しています。具体的なシナリオの1つは、単純な形式です。私のメイン(インデックス)ページに、ボタン付きの「サインアップ」編集ボックスが必要です。私の見解では

#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' 
... 

これは動作しません。 /signuprenderは決して何もしません。

注:私は自分のモデルなどを定義する必要があることを知っています...;しかし、私はそれを私の学習の中で構築しています。

私がここで間違っていることを教えてくれるのではなく、私が本当に好きなのは、フォームを使用するかなり完全なPadrinoサンプルアプリケーションです(ブログサンプルはPadrinoの表面領域の小さな部分しかカバーしません)。

どこですばらしいパドリーノのサンプルを見つけることができますか? :-)

EDIT

以下の答えは、より多くのサンプルで私を指してのに役立ちました。しかし、私はまだ上記の私のコードで何が間違っているかについて何の喜びも見つけていません。

は、私は少し私のハッキングでこれを変更しましたし、私はまだ届かない: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 

EDIT追加モデル:

#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を使用しているので、あなたが:post

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

:getを変更する必要があり、デフォルトでpostアクションを実行するので、あなたが必要とする電子メールを取得するためにparams[:user]でありますto puts params[:user][:email]

+0

'Projects-using-Padrino'へのリンクは非常に役立ちました。私は検索して検索し、それを見たことはありません。注意 'admin'は部分的なものを使用しています。私は(まだ)そうではありません。私はまだ森の外に出ていないが、あなたの答えは助けになった。ありがとう。 – tig

+0

また、私が質問していた 'render'は':signup'ハンドラにあります。私が持っている問題は、 'params [:email]'は常に 'nil'です... – tig

+0

単純な' text_field:email'で試してみてください。 – DAddYE

関連する問題