1

所以我有一个表格,可以将代码添加到 Rails 中的约会中。有两种类型的代码,直接添加到 apt 的常规代码和返回包含查询的代码列表的通配符代码(例如 800* 返回任何包含 800 的代码)。

我需要做的是将任何常规代码添加到约会中,如果没有选择通配符代码,则返回约会页面。如果选择了通配符代码,我需要渲染一个与搜索结果一起切换的部分。如果同时选择了通配符和常规代码,我需要切换滑块,但还要在页面上的代码表上更新常规代码。

我遇到的问题是,当只选择常规代码时,toggleslide 仍然被调用并在其中填充了约会页面。

我将执行此操作的表单设置为远程,并且在 js 文件中我让 ajax 响应执行切换幻灯片并用响应填充它。如果没有选择通配符代码,有没有办法覆盖控制器中的 ajax 响应并重定向到约会页面?

还是有更好的方法来完成这一切?我尝试使用 js 模板,但不断收到 406 错误。或者我通过删除任何 respond_to 调用来修复 406 错误,但不会调用 toggleslide。

在我的资产中的 js 文件中。

$(document).ready(function() {
  $("#custom_codes_form_1").on("ajax:success", function(e, data, status, xhr) {
    $('#my_lists_modal_1').hide();
    $('#search_code_results').html(data);
    $('html, body').animate({ scrollTop: 0 }, 'slow');
    $('#search_code_results').show('blind', {direction: "left"});
  });
  return false;
});

在我的控制器中。@all_codes 是搜索查询返回的代码列表。这是在 add_code_list_codes 方法中:

if !@all_codes.nil?
    render :partial => "/encounter/code_search_results", :content_type => 'text/html', :locals => {:codes => @codes, :apt => @apt, :all_codes => @all_codes, :diagnoses_search => true, :type => @type}
else
  respond_to do |format|
    format.html {redirect_to encounter_show_path(:id => @apt.id)}
  end
end

这是表格。

<%= form_tag({:controller => :encounter, :action => :add_code_list_codes, :id => @apt.id}, :class => 'form-horizontal', :id => "custom_codes_form_#{cl.id}", :remote => true ) do %>
 <% CodeType.by_name.all.each do |ct| %>
   <h4 class="small_bottom_margin"><%= ct.display_name %></h4>
   <div class="control-group">
      <% cl.code_list_items.all_by_code_type(ct.id).each do |cc| %>
         <%= label_tag :codes, :class => 'checkbox' do %>
         <% if cc.code %>
           <%= check_box_tag 'codes[]', cc.id %>  <strong><%= cc.code.code %></strong> - <%= cc.name_override ? cc.name_override : cc.code.name %>
         <% else %>
           <%= check_box_tag 'codes[]', cc.id %>  <strong><%= cc.search_criteria %></strong> - Wildcard
         <% end %>
       <% end %>
      <% end %>
   </div>
 <% end %>
 <%= submit_tag("Add Selected Charges", :class => 'btn', 'data-disable-with' => "Adding Charges") %>
<% end %>
4

0 回答 0