次のようなHAMLテンプレートがあります(Sinatraも使用していますが、それが重要かどうかはわかりません)。
- @email = params[:email]
EMAIL: x#{@email}#{params[:email]}#{@email.to_s.empty?}x
-if #{@email.to_s.empty?}
%form{ :action => "/", :method => "post"}
%fieldset
%input{:type => "text", :name => "email", :class => "text"}
%input{:type => "submit", :value => "Notify me!", :class => "button"}
-else
Thank you for your interest!
デバッグ用の一番上の出力があります。最初にページをロードすると、「EMAIL:xtruex」とフォームが表示され、パラメータが空であることを示しています...すべて計画どおりに機能しています。
フォームに「testing@gmail.com」と入力してボタンをクリックすると、「/」にリダイレクトされ、「EMAIL:xtesting @ gmail.comtesting @ gmail.comfalsex」が表示されます。これは、条件付きロジックであることを示しています。動作するはずです。
しかし、まだフォームが表示されています。elseステートメントは実行されていません...ifステートメントはまだトリガーされています。
単純なフォーマットの問題だと思います。誰かが助けることができますか?
必要な場合に備えて、私のSinatraアプリファイルは単純です。
get '/' do
haml :index
end
post '/' do
User.create(:email => params["email"])
haml :index
end
ありがとう