2011-11-04 47 views
2

我怎么会写这个simple_form在HAML:rails 3.1,simple_form,使用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 
+0

需要ERB转换为HAML的任何时间,试试:http://html2haml.heroku.com/ – jpwynn

回答

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 
+0

谢谢,我还有一个问题在这里:HTTP:/ /stackoverflow.com/questions/8005831/rails-3-1-partial-using-haml我会感谢您的帮助! – simo