2011-10-25 8 views
3

私のコードは、コントローラhamlはform_forに対応していませんか? (レール3.1)

def new 
    @user = User.new 
    end 

であり、私は私が唯一持っているユーザー/新しいパスに行くと私のコードは、「new.html.haml

- if @user.errors.any? 
    #error_explanation 
     %h2 Form is invalid 
     %ul 
      -for message in @user.errors.full_messages 
       %li= message 
      - 
- 
%section 
    %h1 Sign Up 
    -form_for @user do |f| 
     %p 
      = f.label :email 
      %br 
      = f.text_field :email 
     %p 
      = f.label :name 
      %br 
      = f.text_field :name 
     %p 
      = f.label :password 
      %br 
      = f.text_field :password 
     %p 
      = f.label :password_confirmation 
      %br 
      = f.password_field :password_confirmation 
     %p.button 
      = f.submit 
    - 

にあり私のページには、ラベルやテキストフィールドはありません。 私はhamlを初めて使っています。私は何を間違っているのですか?

+0

が助けてください、私はいけない

はあなたにもブロックをエコーする必要があるように、それがあるべき見えますerbを使用したい) – Pavel

答えて

18

ハムはform_forと動作します。

あなたはHamlを間違って書いているようです。 「閉じる」ダッシュを削除してみてください。ハムルはあなたやあなたを閉鎖してくれます。

= form_for [...] 

- form_for [...] 
+0

各ブロックの最後に " - "が削除されましたが、ヘルプが表示されませんでした。ラベルとテキストフィールドがありません( – Pavel

+1

私の答えを更新しました。 – MarioRicalde

+2

**あなたは 'form_tag'のようなブロックヘルパーのために' - 'の代わりに' = 'を使う**を持っています。 Rails 3はあなたに非推奨警告を与えました.Rails 3.1はそれらをレンダリングしません。 –

0
あなたはこのように使用することができ

ない:

-form_for :user do |f| 
関連する問題