【问题标题】:Render action in two different controllers在两个不同的控制器中渲染动作
【发布时间】:2012-06-04 17:25:07
【问题描述】:

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

我的应用程序使用 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 Controller

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")  %>");

【问题讨论】:

    标签: javascript jquery ruby-on-rails ruby templates


    【解决方案1】:
    "<%=j render @devolucao %>")
    

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

    <%=j render 'devolcao' %>
    

    在此文件中,您可以使用 @devolucao 创建您的循环。

    但我不知道你的视图文件。

    【讨论】:

    • 我有一个名为“devolucaos/_devolucao.html.erb”的部分。 div romaneio 很好,但我需要更新包含“retornar”按钮的 div,以便它应该隐藏已经在选择列表中的那些。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-06-02
    • 2018-11-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-25
    • 1970-01-01
    相关资源
    最近更新 更多