2

したがって、 「app/views/posts」の「_form.html.erb」という部分にこのコードがあります。

<%= form_for @post do |f| %>
    <% if @post.errors.any? %>
        <h2>Errores:</h2>   
        <ul>
            <% @post.errors.full_messages.each do |message| %>
                <li><%= message %></li>
            <% end %>
        </ul>
    <% end %>
<p>
    <%= f.label :title %><br />
    <%= f.text_field :title %><br />
<br />
    <%= f.label :content %><br />
    <%= f.text_area :content %>
</p>

そして、このコードには 2 つのビューがあります。

「アプリ/ビュー/投稿/new.html.erb」

<h1>Nuevo post</h1>

    <%= render 'form' %>

<p>
    <%= f.submit "Agregar Nuevo Post" %>
</p>
<% end %>

「アプリ/ビュー/投稿/edit.html.erb」

<h1>Editar Post</h1>

    <%= render 'form' %>

<p>
    <%= f.submit "Actualizar Post" %>
</p>
<% end %>

私が欲しいのは、ビューでレンダリングするフォームですが、私が示したコードでは、サーバーでこのエラー出力が得られます:

SyntaxError in Posts#new

Showing /home/levick/rubyblog/app/views/posts/new.html.erb where line #10 raised:

/home/levick/rubyblog/app/views/posts/new.html.erb:10: syntax error, unexpected keyword_ensure, expecting $end
Extracted source (around line #10):

7: </p>
8: <% end %>
Trace of template inclusion: app/views/posts/new.html.erb

Rails.root: /home/levick/rubyblog

Application Trace | Framework Trace | Full Trace
Request

Parameters:

None
Show session dump

Show env dump

Response

Headers:

None

編集ビューと同じです。

私の質問は次のとおりです。私は何を間違えましたか?

ありがとう!

4

3 に答える 3

1

form 変数をパーシャル外で使用することはできません。新しいページと編集ページの両方fで、パーシャル内にのみ存在するにもかかわらず、変数を再利用します。

送信ボタンの作成をパーシャル内に移動して、エラーを修正することをお勧めします。<%- end %>パーシャル内でフォームを仕上げているので、パーシャル内も移動することを忘れないでください。

于 2012-06-13T02:07:04.863 に答える
1

部分的に次のことを試してください_form.html.erb

<%= form_for @post do |f| %>
    <% if @post.errors.any? %>
        <h2>Errores:</h2>   
        <ul>
            <% @post.errors.full_messages.each do |message| %>
                <li><%= message %></li>
            <% end %>
        </ul>
    <% end %>
<p>
  <%= f.label :title %><br />
  <%= f.text_field :title %><br />
<br />
  <%= f.label :content %><br />
  <%= f.text_area :content %>
</p>
<%= f.submit @post.new_record? ? 'Nuevo Post' : 'Actualizar Post' %>
<% end %>
于 2012-06-13T02:16:35.147 に答える
0

<%= form_for %> ブロックを閉じるための <% end %> がありません。

于 2012-06-13T02:01:11.623 に答える