2

我将如何在haml中编写这个simple_form:

<%= simple_form_for (@quiz) do |f| %>
<%= f.error_notification %>
  <div class="inputs">
    <%= f.input :body %>
    <%= f.fields_for :quiz_choices do |builder| %>
         <%= render "quiz_choice_fields", :f => builder %>
    <% end %>
    <p><%= link_to_add_association  "Add a choice",f, :quiz_choices %></p>
  </div>

  <div class="actions">
    <%= f.button :submit %>
  </div>
<% end %>

这是我的尝试:

- simple_form_for (@quiz) do |f|
- f.error_notification
  .inputs
    = f.input :body
    - f.fields_for :quiz_choices do |builder|
    = render "quiz_choice_fields", :f => builder

    %p= link_to_add_association  "Add a choice",f, :quiz_choices
  .actions
    = f.button :submit

这是错误:

提取的源代码(第 12 行附近):

9:   .actions
10:     = f.button :submit
4

1 回答 1

4

好吧,任何时候你都有<%=,它应该变成=haml,而不是-。此外,对于循环或块,您需要缩进它下面的代码。

- simple_form_for (@quiz) do |f|
- f.error_notification
  .inputs
    = f.input :body
    - f.fields_for :quiz_choices do |builder|
    = render "quiz_choice_fields", :f => builder

    %p= link_to_add_association  "Add a choice",f, :quiz_choices
  .actions
    = f.button :submit

应该变成:

= simple_form_for (@quiz) do |f|
  = f.error_notification
  .inputs
    = f.input :body
    = f.fields_for :quiz_choices do |builder|
      = render "quiz_choice_fields", :f => builder
    %p= link_to_add_association  "Add a choice",f, :quiz_choices
  .actions
    = f.button :submit
于 2011-11-04T04:49:22.993 回答