我正在使用涉及两个表的查询来显示视图中的记录,当修改该记录时,我通过向表单添加“Remote True”并添加到表单中来使用ajax在控制器中编辑动作“format.Json”并创建一个update.js.erb文件,在该文件中,我在更新显示更新视图后渲染注册表。我的问题是,记录是查询的结果,并且在视图中使用ajax呈现它时,它不会执行查询的结果。使用ajax显示查询结果
用ajax怎么可以呈现查询结果?
我的索引行动:
@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>
我的部分_pedidoliberado:
<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>
我的查询:
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
我的编辑操作:
def update
respond_to do |format|
if @pedidoliberado.update(pedidoliberado_params)
format.html { redirect_to @pedidoliberado, notice: 'Pedidoliberado was successfully updated.' }
format.json { render :show, status: :ok, location: @pedidoliberado }
format.js {flash.now[:notice] = 'saved.'} #ajax
else
format.html { render :edit }
format.json { render json: @pedidoliberado.errors, status: :unprocessable_entity }
format.js {flash.now[:alert] = 'Error.'} #ajax
end
end
end
我update.js.erb:
$("#pedidoliberado_<%= @pedidoliberado.id %>").fadeOut(500, function(){
$(this).remove();
$("#container_pedidosliberados").prepend('<%= j render @pedidoliberado %>');
});
$("#notice").html("<%= escape_javascript(render :partial => 'partials/flash' , :locals => { :flash => flash }).html_safe %>");
setTimeout(function(){
$('#notice').fadeIn("slow", function() {
$(this).create();
})
}, 1500);
您是否尝试删除编辑操作中的format.html行? –
@VineethSubbaraya谢谢你的回答,是的,我做过了,但它仍然显示没有查询结果的记录 – luis31
你能解释一下索引操作中搜索功能的作用吗?你的意思是把它放在那里? –