ActionController :: Controls / itemsController中的DoubleRenderError更新只能渲染或重定向

时间:2012-09-06 07:58:15

标签: redirect parent render

  responds_to_parent do
      render :update do |page|
          page << "tb_remove"
          item_link = params[:controller].eql?("compliance_items") ? edit_compliance_compliance_item_path(master, @master_item) : edit_controls_item_path(@master_item)
          #          page.redirect_to(item_link + "?token=#{params[:token]}")
     end
 end

您好在上面的代码中我得到双重渲染错误(主题行是错误)...有人可以帮忙吗?

它也有所不同 - stack over flow没有提供任何选项来创建没有声誉的新标签.. !!!

1 个答案:

答案 0 :(得分:2)

您无法同时拨打renderredirect_to。这就是你所做的(在redirect_to块中调用render

要在某些情况下重定向,您需要将if条件移到render块之外。尝试这样的事情:

if I_need_to_redirect
  item_link = params[:controller].eql?("compliance_items") ? edit_compliance_compliance_item_path(master, @master_item) : edit_controls_item_path(@master_item)
  redirect_to item_link
else
  responds_to_parent do
    render :update do |page|
      page << "tb_remove"
    end
  end
end

I_need_to_redirect应该替换为检查是否应该重定向的条件(如果为false,则应该呈现)。