【问题标题】:Rails render command responding api wronglyRails 错误地渲染命令响应 api
【发布时间】:2017-08-04 17:56:47
【问题描述】:

我有一个 API 方法是这样实现的:

  def change_status_operacao

    if @user.change_status_operacao(params[:status], params[:empilhadeira_id].to_i, params[:motivo_id].to_i)
      emp = ModeloEmpilhadeira.find(params[:empilhadeira_id].to_i)
      ActionCable.server.broadcast "filas", {fila: "aguardando", object_dom: render(partial: "application/operacao_detalhe", locals:{ empilhadeira: emp})}

      render json: { message: I18n.t("app.change_status_success") }, status: 200
    else
      render json: { errors: I18n.t("app.change_status_error") }, status: 400
    end

  end

问题是,当我使用render(partial: "application/operacao_detalhe", locals:{ empilhadeira: emp}) 为我的动作有线电视频道渲染 html 内容时,它似乎是用该内容响应我的 api 调用,而不是使用 200 代码来响应下面的渲染。如果我取出该广播,它可以正常工作,但我需要将呈现的 html 传递给我的频道。那么如何调用该渲染方法使其不响应 api 调用呢?

【问题讨论】:

    标签: ruby-on-rails ruby actioncable


    【解决方案1】:

    您只能在一个方法中调用render 一次。当您调用render 生成部分时,该部分将用作响应。

    尝试render_to_string通过频道发送部分。

    【讨论】:

    • 知道了,但是 render_to_string 对我来说得到了相同的结果。难道没有另一种 wai 来获取 html 内容作为部分字符串吗?
    猜你喜欢
    • 1970-01-01
    • 2012-09-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-23
    • 1970-01-01
    • 2017-04-04
    • 1970-01-01
    相关资源
    最近更新 更多