2013-05-07 75 views
1

我想創建一個窗體通過ajax發送數據,併爲了更新用戶(我使用腳手架,所以更新的方法已經存在)。如何使我的表單在使用haml的rails上使用ajax?

我建立了我的形式,並根據什麼我說:remote => true將與阿賈克斯做閱讀我做了這樣的事情

%form{ :action => "https://stackoverflow.com/users/customsave", :method => "post", :controller => "/users", :remote=>"true"} 

,問題是,這並不工作,最糟糕的是,殺死我的會話我提交帖子後出現一些奇怪的原因。

任何想法如何做到這一點?用ajax提交?

感謝

+2

您應該使用FormHelpers而不是原始HTML表單(或HAML)。 – MrYoshiji 2013-05-07 18:53:42

+0

我想使用它們,但是這已經開始了,我有點新的軌道,但很新的哈姆 – jpganz18 2013-05-07 18:55:29

回答

2

您可以使用

%form{ :action => "https://stackoverflow.com/users/customsave", :method => "post", :controller => "/users", data: {remote: true}} 

您可以使用

= form_for 'model', url: "https://stackoverflow.com/users/customsave", method: :post, data: { remote: true } do |f| 
    = f.text_field 'field_name' 
/generates <input type="text" name="model[field_name]" 
    id="model_field_name" 
    value="value of the field in case you don't specify string, 
    instead an actual model"> 
+0

請你知道我必須做什麼,以防我想使它form_for嗎? – jpganz18 2013-05-07 20:13:32

+0

更新....... – juanpastas 2013-05-07 20:18:25

+0

非常感謝你!但是,是否可以使用腳手架的默認編輯方法?基本上我想做的只是顯示一個表單來更新信息,但以ajax的方式:如果我在輸入中指定一個值,我只是看不到打印,任何方式來解決這個問題? – jpganz18 2013-05-07 20:44:54

0

您應該使用的形式助手,作爲@MrYoshiji告訴他的評論,例如,form_tag

但是,如果您希望繼續使用HAML,你需要使用data-remote

%form{ :action => "https://stackoverflow.com/users/customsave", :method => "post", :controller => "/users", 'data-remote'=>"true"} 

但要小心,因爲這不是預期的接口,並且可能在未來發生變化,從而導致從您身邊進行廣泛的升級。

1

你應該申報的形式,像這樣:

= form_tag({:controller => "users", :action => "customsave"}, :remote => true) 
0

首先,您需要使用form_forform_tag%form創建如下所示的html表單:

= form_tag({:controller => "users", :action => "customsave"}, :remote => true) 

其次,確保實際上創建了一個customsave.js.erb js視圖來處理ajax請求的響應。

相關問題