1

フォーム ヘルパーのガイドhttp://guides.rubyonrails.org/form_helpers.htmlを読んでいますが、実際にこの方法で Web ページを作成する必要があるかどうかはわかりません..

私はこのようなHTMLフォームを持っていますnew.html.erb

<form action="/posts" method="post">
  <label for="title">Test</label>
  <input id="title"/>
  <input type="submit" value="submit"/>
</form>

postsページはスタートガイドより)

リクエストを送信すると、サーバーがActionController::InvalidAuthenticityToken例外をスローします。

だから私はそれを

<%= form_for :post, url: {action: "create"} do |f| %>
  <label for="title">Test</label>
  <input id="title"/>
  <input type="submit" value="submit"/>
<% end %>

そして今、サーバーがリクエストを受け入れることを除いて、同じフォームを持っています。

フォームヘルパーはRailsビューでフォームを開発する適切な方法ですか?

4

1 に答える 1

2

一般的に、はい。

「Rails way」では、これを次のように書き換えます。

<%= form_for Post.new do |f| %>
  <%= f.label :title, "Test" %>
  <%= f.input :title %>
  <%= f.submit %>
<% end %>

ストレートな HTML タグを使用しようとする試みは、Rails がすべての非 GET リクエストで使用する CSRF 保護によって妨げられました。このエラーを回避するには、Rails フォーム タグを使用するか、CSRF 保護を削除する必要があります。

于 2013-10-10T15:33:55.400 に答える