haml不适用于form_for?(铁路3.1)

Pav*_*vel 3 ruby haml ruby-on-rails ruby-on-rails-3.1

在控制器中有我的代码

def new
    @user = User.new
  end
Run Code Online (Sandbox Code Playgroud)

并且我的代码在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
    -
Run Code Online (Sandbox Code Playgroud)

当我转到用户/新路径时,我的页面上只有"注册",我没有标签和文本字段.我是haml的新手.我做错了什么?

Mar*_*lde 18

哈姆确实合作过form_for.

看起来你错误地写了你的Haml.尝试删除"关闭"破折号.哈姆负责关闭块或你.

看起来你还需要回显块,它应该是:

= form_for [...]
Run Code Online (Sandbox Code Playgroud)

- form_for [...]
Run Code Online (Sandbox Code Playgroud)

  • 你有**使用`=`而不是`-`来阻止诸如`form_tag`这样的块助手.Rails 3给你一个弃用警告,Rails 3.1只是不渲染它们. (2认同)