繁体   English   中英

在两个不同的控制器中渲染动作

[英]Render action in two different controllers

我有一个StockMovements列表和一个StockMovements的ajax stock_movements列表。

我的应用程序使用will_paginateelasticsearch了ajax搜索。 要将清单添加到拣货清单,我将以下代码放在StockMovement清单的每一列中:

<%= button_to 'Retornar', linha_devolucaos_path(stock_movement_id: stock_movement.id, page: params[:page]), class: 'btn btn-mini' if !stock_movement.back and !stock_movement.linha_devolucaos.present? %>

它使用该项目的js响应更新选择列表:

$('#romaneio').html("<%=j render @devolucao %>")

在ajax中,它运行良好,但是不会隐藏retornar按钮,因为该div未更新。 我知道我需要请求StockMovement#index动作的js响应,但是如何,在何处调用该动作以及如何传递参数呢?

LinhaDevolucao#create控制器

def create
@devolucao = current_devolucao_romaneio
stock_movement = StockMovement.find(params[:stock_movement_id])
@devolucao.add_stock_movement(stock_movement.id)

respond_to do |format|
  if @devolucao.save
    format.html { redirect_to stock_movements_path(page: params[:page]), notice: 'Linha devolucao was successfully created.' }
    format.json { render json: @linha_devolucao, status: :created, location: @linha_devolucao }
    format.js
  else
    format.html { render action: "new" }
    format.json { render json: @linha_devolucao.errors, status: :unprocessable_entity }
  end
end
end

LinhaDevolucao / create.js

$('#romaneio').html("<%=j render @devolucao %>");

然后,我需要更新当前的StockMovement列表,以隐藏linha_devolucao中已经存在的行的“ retornar”按钮。 我的StockMovement#index操作可以完成这项工作,但是如何以及在何处重定向到该操作并呈现js响应?

$("#equipments-table").html("<%=j render("equipments")  %>");
"<%=j render @devolucao %>")

我认为:这不好,您必须在StockMovements文件夹中呈现自定义视图。 例如:

<%=j render 'devolcao' %>

在此文件中,您可以使用@devolucao创建周期。

但是我不知道您视图的文件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM