我正在使用涉及兩個表的查詢來顯示視圖中的記錄,當修改該記錄時,我通過向表單添加「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
你能解釋一下索引操作中搜索功能的作用嗎?你的意思是把它放在那裏? –