私はサイトをRails 2.xからRails 3.0に変換していましたが、これまでのところ、私がform_for
を持っている問題を除いて、とても良いものでした。私はremote_form_for
からform_for, :remote => true
に切り替えることを知っていますし、新しいスタイルのAJAXは通常のハイパーリンクにはうまく機能しています。リモートAJAX form_forがJSとしてではなくHTMLとして送信されるのはなぜですか?
フォームでは、フォームがJSではなくHTMLとして送信され、結果としてコントローラによって正しく処理されないという奇妙な問題が発生します。ここに私が持っているものがあります。
<% form_for (AuthorSubscription.new), :remote => true, :id => "subscribe_form" do |f| %>
<%= f.submit "Subscribe" %>
<% end %>
あなたは
data-remote
属性があることがわかります
<form accept-charset="UTF-8" action="/author_subscriptions" class="new_author_subscription" data-remote="true" id="new_author_subscription" method="post">
<div style="margin:0;padding:0;display:inline">
<input name="utf8" type="hidden" value="✓" />
<input name="authenticity_token" type="hidden" value="NxCF177nMDfL6QsYjesBUOUUJ9QdzKIdZYQjGAaGYmA=" />
</div>
<input id="author_subscription_submit" name="commit" type="submit" value="Subscribe" />
</form>
のHTMLになり
、すべてが良いようです。しかし、ロガーが私を見せている
Started POST "/author_subscriptions" for 127.0.0.1 at 2011-06-27 16:21:29 -0400
Processing by AuthorSubscriptionsController#create as HTML
私が間違っていることについてのアイデアはありますか?
私は、あなたがコントローラでフォーマットを与えるべきだと思う
form_forタグの記号に等号を追加したいと思います。これはこのエラーに役立たないかもしれません。しかし、そうすべきです。 Like <%= form_for ...%> – shajin
良いキャッチ、shajin - ありがとう!問題を悲しげに修正しなかったが、コードを標準にする。 – isthmus