14

I have looked at the documentation of slim, and I still can't figure out how to do this in slim:

<%= form_for([@post, @post.comments.build]) do |f| %>
  <div class="field">
    <%= f.label :commenter %><br />
    <%= f.text_field :commenter %>
  </div>
  <div class="field">
    <%= f.label :body %><br />
    <%= f.text_area :body %>
  </div>
  <div class="actions">
    <%= f.submit %>
  </div>
<% end %>

I try to translate the first line like this

= form_for([@post, @post.reviews.build]) do |f|

But I am getting a syntax error.

Andrei Botalov
  • 20,686
  • 11
  • 89
  • 123
AlexBrand
  • 11,971
  • 20
  • 87
  • 132

2 Answers2

27

Was experiencing a similar issue earlier, I think you just need some child elements! Try this:

= form_for([@post, @post.comments.build]) do |f|
  div.field
    = f.label :commenter
    br
    = f.text_field :commenter
  div.field
    = f.label :body
    br
    = f.text_area :body
  div.actions
    = f.submit
Mario
  • 615
  • 7
  • 7
0

Mario wrote:

= form_for([@post, @post.comments.build]) do |f| div.field = f.label :commenter br = f.text_field :commenter div.field = f.label :body br = f.text_area :body div.actions = f.submit

Div is not necessary . So I would do :

= form_for([@post, @post.comments.build]) do |f|
  .field
    = f.label :commenter
    br
    = f.text_field :commenter
  .field
    = f.label :body
    br
    = f.text_area :body
  .actions
    = f.submit