0

私の質問には、リモートフォームを使用した次の部分ビューが含まれます。

 <% remote_form_for :phone_number, :url => {:controller => "edit", :action => "add_phone_number" }, :update => "phone_number_div" do |form| %>
    <%= form.text_field :number%>
    <%= form.select :type, PhoneNumber::PHONE_TYPE%>
    <%= submit_tag "Add" %>     
 <% end %>

Addボタンが押されると、アクションadd_phone_numberはに投稿されますが、フォームの値はparams変数に含まれていません。

なぜこれができるのか誰かが知っていますか?

4

2 に答える 2

4

ほとんどのブラウザーは、フォーム要素が DOM 内の不正な場所 (TR 内など (TD 内ではない) など) の子ノードである場合、フォーム値をポストに渡しません。

私は一度この問題に遭遇しました。

于 2009-03-19T14:08:18.567 に答える
0

おそらく、フォームに対して何らかのメソッドが必要になるでしょう。

<% remote_form_for :phone_number, :method => :post, :url => { :controller => "edit", :action => "add_phone_number" }, :update => "phone_number_div" do |form| %>

うるさいわけではありませんが、使用しremote_for_formている場合は、それを使用するためのリソースが必要です。:phone_numberそのため、コントローラーでインスタンス化し@phone_numberたインスタンス変数に置き換える必要があります。これにより、コードが少し見やすくなり、Rails の規則にも準拠しています。

また、これらのデバッガーのような問題については、あなたの友達です

于 2009-03-18T23:12:28.643 に答える