1

我正在尝试创建一个表单以通过 ajax 发送数据并命令更新用户(我使用了脚手架,因此更新方法已经存在)。

我创建了我的表格,我做了这样的事情

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

根据我读到的说:remote => true会用ajax来做,问题是它不起作用,最糟糕的是在我提交帖子后由于某种奇怪的原因杀死了我的会话。

知道怎么做吗?用ajax提交?

谢谢

4

4 回答 4

2

您可以使用

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

您可以使用

= form_for 'model', url: "/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">
于 2013-05-07T19:10:10.613 回答
1

您应该像这样声明您的表格:

= form_tag({:controller => "users", :action => "customsave"}, :remote => true)
于 2013-05-07T19:10:47.430 回答
0

正如@MrYoshiji 在他的评论中所说,您应该使用表单助手,例如form_tag

但是,如果您仍想使用 HAML,则需要使用data-remote

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

但是请注意,因为这不是预期的界面,并且将来可能会发生变化,从而导致您进行广泛的升级。

于 2013-05-07T19:09:41.203 回答
0

首先,您需要使用form_foror创建一个 html 表单,如下所示form_tag%form

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

其次,确保您实际创建了一个 customave.js.erb js 视图来处理 ajax 请求的响应。

于 2013-05-07T20:11:18.493 回答