1
  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

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

它也很糟糕 - 堆栈溢出不会提供任何选项来创建没有声誉的新标签..!!!

4

1 回答 1

2

您不能同时调用renderredirect_to。这就是你所做的(redirect_torender块内调用。

在某些情况下,要重定向,您需要将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

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

于 2012-09-06T08:04:28.733 回答