Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/52.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何在不重新加载页面的情况下更新下拉列表_Ruby On Rails_Ajax - Fatal编程技术网

Ruby on rails 如何在不重新加载页面的情况下更新下拉列表

Ruby on rails 如何在不重新加载页面的情况下更新下拉列表,ruby-on-rails,ajax,Ruby On Rails,Ajax,我有一个下拉列表,用户可以在其中选择一个选项。该功能正常工作,但页面每次都会重新加载。我读过很多书,看过很多例子,但是我很难综合我所看到的方法。我知道我必须在控制器方法中的format.js调用上传递AJAX,如: def update_device_position ... if @cabinet.add_cabinet_item(@position_str,params[:position].to_i) format.js 然后在视图中,我必须添加表单标签代码,如下所示:

我有一个下拉列表,用户可以在其中选择一个选项。该功能正常工作,但页面每次都会重新加载。我读过很多书,看过很多例子,但是我很难综合我所看到的方法。我知道我必须在控制器方法中的format.js调用上传递AJAX,如:

def update_device_position
...
if @cabinet.add_cabinet_item(@position_str,params[:position].to_i)
  format.js
然后在视图中,我必须添加表单标签代码,如下所示:

            <div id="add_device">
                <%= form_tag(:url => {:action => url_for(:controller => "cabinets", :action => :update_device_position), :position => i , :id => @cabinet.id }, remote: true)%>
                <td>
                    <%= select_tag :position_name, options_for_select(@selection_list) %>
                </td>
                <td>
                    <%= hidden_field_tag 'position', i %>
                    <%= submit_tag "Add" , :class => "btn" %>
                </td>

            </div>   

{:action=>url\u for(:controller=>“cabines”,:action=>:update\u device\u position),:position=>i,:id=>@cabinet.id},remote:true)%>
“btn”%>
当我为机柜插槽选择新值并单击“提交”时,我会收到一个路由错误,说明
No route matches[POST]“/cabines/9999999”


谢谢。

您需要使用
form_标记(url:{[blabla..]},remote:true)
通过Ajax@MrYoshiji,我补充了你的建议,我想我更接近了。当我尝试提交更改时,我收到以下消息<代码>没有与[POST]匹配的路由“/Cabines/9999999”?您知道如何正确配置路由吗?还是我的format.js调用不正确?