Ruby on rails 如何在不重新加载页面的情况下更新下拉列表
我有一个下拉列表,用户可以在其中选择一个选项。该功能正常工作,但页面每次都会重新加载。我读过很多书,看过很多例子,但是我很难综合我所看到的方法。我知道我必须在控制器方法中的format.js调用上传递AJAX,如: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 然后在视图中,我必须添加表单标签代码,如下所示:
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调用不正确?