2012-11-20 28 views
1

我在Rails 3的一種形式,它必須與正常後提交,這樣Rails的遠程行動形成只有一個字段

<%= form_for @seller, :as => :seller_user, :url => save_seller_url do |f| %> 

,但該領域的一個內部需要執行遠程Ajax調用更新一些值,像這樣的

<%= f.select(...) %> => on change please make a remote call to fill new data here 

我沒有發現任何在線文檔的補充:遠程=>真正選項來選擇助手,我失去的東西嗎?
處理這個問題的正確方法是什麼?
謝謝

回答

1

我摔跤了一段時間了。我認爲最好的「軌道的方式」來做到這一點是這樣的:

<%= form_tag(controller: "sellers", action: "your_controller_action") do %> 
    OTHER FORM STUFF HERE 
    <select name="some_select" id="some_select" onchange="your_javascript_function"> 
     <option> ... </option> 
    </select> 
    OTHER FORM STUFF HERE 
    <%= submit_tag("Submit") %> 
<% end %> 
在你的控制器來處理

然後提交,你可以參考像正常的這個領域,因爲params[:some_select]

這裏假設你的控制器稱爲sellers_controller。更多關於form_tag here和form_tag幫手here

+0

因此,你建議不要使用選擇幫助函數,並在鏈接到onchange事件的JavaScript處理程序中手動處理ajax調用? – mottalrd

+0

是的。只是因爲我覺得輕鬆勝過試圖用form_for做這件事的麻煩 –