提问人:mottalrd 提问时间:11/20/2012 更新时间:11/20/2012 访问量:448
仅针对一个字段的远程操作的 Rails 表单
Rails form with remote action for only one field
问:
我在 Rails 3 中有一个表单,必须与普通帖子一起提交,如下所示
<%= 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
我没有在网上找到任何将 :remote => true 选项添加到选择助手的文档,我错过了什么吗?
正确的处理方法是什么?
谢谢
答:
1赞
n_i_c_k
11/20/2012
#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的信息 这里 和form_tag助手 这里
评论
1赞
mottalrd
11/20/2012
因此,您建议不要使用 select helper 函数,而是在链接到 onchange 事件的 JavaScript 处理程序中手动处理 ajax 调用?
0赞
n_i_c_k
11/21/2012
是的。只是因为我觉得轻松超过了尝试用form_for来做这件事的麻烦
评论