使用ajax显示查询的记录结果

时间:2017-04-18 15:29:20

标签: jquery ruby-on-rails ruby ajax ruby-on-rails-4

我正在使用一个涉及两个表的查询来显示视图中的记录,在修改该记录时我通过向表单添加“Remote True”并在控制器中添加“格式”来使用ajax。 Json“并创建一个update.js.erb文件,我在更新它之后渲染我的注册表以显示它更新视图。我的问题是记录是查询的结果,并且在视图中使用ajax呈现它时,它不会获取查询结果。

使用ajax如何呈现查询结果?

我的索引操作:

FlagEnumEditor

这是我的观点

<telerik:FlagEnumEditor Margin="-4,0,-2,0"
                        BorderThickness="0"
                        Value="{Binding Aggregates, Mode=TwoWay}"
                        EnumType="viewModels:Aggregates">
    <telerik:FlagEnumEditor.Resources>
        <Style TargetType="telerik:RadDropDownButton" BasedOn="{StaticResource {x:Type telerik:RadDropDownButton}}">
            <Setter Property="Background" Value="Transparent" />
            <Setter Property="BorderBrush" Value="Transparent" />
        </Style>
    </telerik:FlagEnumEditor.Resources>
</telerik:FlagEnumEditor>

我的部分_pedidoliberado:

@search_liberados = Pedidoliberado.proceso_pedidos_lib.search(search_params)

@search_liberados.sorts = 'Pza desc' if @search_liberados.sorts.empty?
@pedidosliberados = @search_liberados.result().page(params[:pedidosliberados]).per(15)

我的疑问:

  <tbody id="container_pedidosliberados">
            <%= render @pedidosliberados %><!--carga todos los productos-->
  </tbody>

我的编辑操作:

<tr id="pedidoliberado_<%= pedidoliberado.id %>">
  <td class="component_name_body_col"><%=pedidoliberado.TOTAL%></td>
  <td class="component_name_body_col">
    <%= form_for(pedidoliberado, :method => :put, remote: true, :url => {:controller =>'pedidosliberados', :action => 'update', :id => pedidoliberado.ID}, html: {class: "form-horizontal "}) do |f| %><!--ajax-->

      <%= f.hidden_field :STATUS %>

        <%= submit_tag "save", class: "btn btn-primary Entregar", data: { disable_with: 'Actualizando' }%>

    <% end %>
  </td>
</tr>

我的update.js.erb:

  def self.proceso_pedidos_lib
    query = select("[pedidosliberados].PEDIDO AS Pedido, SUM([detalle].IMPORTE) AS IMPORTE, SUM([detalle].IVA) AS IVA, SUM([detalle].IMPORTE) + SUM([detalle].IVA) AS TOTAL")
            .joins('inner join detalle ON pedidosliberados.PEDIDO = detalle.PEDIDO ')
    query
  end

1 个答案:

答案 0 :(得分:0)

您没有在更新操作中运行查询。除非您在更新操作中运行,否则查询的参数将不可用。你也编写了一个不可用的类方法(个人记录)

def self.proceso_pedidos_lib
    query = select("[pedidosliberados].PEDIDO AS Pedido, SUM([detalle].IMPORTE) AS IMPORTE, SUM([detalle].IVA) AS IVA, SUM([detalle].IMPORTE) + SUM([detalle].IVA) AS TOTAL")
        .joins('inner join detalle ON pedidosliberados.PEDIDO = detalle.PEDIDO ')
    query
end

您必须运行以下命令才能获得IMPORTE等连接字段。

  @pedidoliberado.proceso_pedidos_lib