Ошибка: синтаксическая ошибка haml, неожиданное ключевое слово_обеспечения, ожидание $ end - PullRequest
4 голосов
/ 14 января 2012

Преобразовал разработку нового сеанса из erb в Haml, но не работает, это код:

%div.row.show-grid
 %div.span8.offset7
  %h1 Sign in

  - form_for(resource, :as => resource_name, :url => session_path(resource_name)) do |f| 
   %div.clearfix
   = f.label :email 
    %div.input
     = f.email_field :email, :class => 'xlarge', :id => 'admin_email' 
    %div.clearfix       
    = f.label :password 
    %div.input
     = f.password_field :password, :class => 'xlarge', :id => 'admin_password' 
     - if devise_mapping.rememberable? 
      %div = f.check_box :remember_me  
      = f.label :remember_me 
    %div = f.submit "Sign up" 

и это изначально код erb:

<div class="row show-grid">
    <div class="span8 offset7">


<div class="page-header">
    <h1>Sign in</h1>
  </div>
<%= form_for(resource, :as => resource_name, :url => session_path(resource_name)) do |f| %>

  <div class="clearfix">
            <%= f.label :email %>
            <div class="input">
              <%= f.email_field :email, :class => 'xlarge', :id => 'admin_email' %>
            </div>
          </div>

   <div class="clearfix">
            <%= f.label :password %>
            <div class="input">
              <%= f.password_field :password, :class => 'xlarge', :id => 'admin_password' %>
            </div>
          </div>
            <% if devise_mapping.rememberable? -%>
    <div><%= f.check_box :remember_me %> <%= f.label :remember_me %></div>
  <% end -%>

          <div><%= f.submit "Sign up" %></div>

<% end %>

1 Ответ

6 голосов
/ 14 января 2012

Во-первых, вы можете использовать .class и #id напрямую, это ярлык для %div.class и %div#id

Во-вторых, эта ошибка обычно вызывается в «блоке» кода, как в:

- if cond
  =# instr

или

- form_for(options) do |f|
  =# instr

Предоставление нам строки ошибки поможет.Но я бы сказал, что вы напутали с отступом в одном из указанных блоков кода.

РЕДАКТИРОВАТЬ

О, я понял.Вы забыли сделать отступ в строке 7 = f.label :email.Кроме того, %tag = code не будет работать, вы должны либо вложить его, либо сделать это с помощью %tag= code

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...