рельсы 3.1, simple_form, используя хамл? - PullRequest
2 голосов
/ 04 ноября 2011

Как бы написать эту простую форму в haml:

<%= 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

1 Ответ

4 голосов
/ 04 ноября 2011

Ну, в любое время, когда у вас есть <%=, оно должно стать = в хамле, а не -. Кроме того, для цикла или блока необходимо сделать отступ для кода под ним.

- 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
...