Ruby On Rails活动管理员创建操作“在此操作中多次调用渲染和/或重定向。”

时间:2016-06-18 13:42:48

标签: ruby-on-rails redirect action activeadmin

我在Active Admin Create Controller Action中更新一个字段时遇到问题。 我的代码:

params[:document].merge!({ createdby: current_user.id })
create!
redirect_to admin_documents_path, :notice => "Document added!"

我需要在创建更新属性后保存文档并重定向到admin_documents路径。

但我收到错误:

  

在此操作中多次调用渲染和/或重定向。   请注意,您最多只能调用渲染或重定向   每次行动一次。另请注意,重定向和渲染都不会终止   执行动作,所以如果你想在之后退出动作   重定向,你需要做一些像“redirect_to(...)和   返回”。

如果我删除最后一行:“redirect_to admin_documents_path,:notice =>”文档已添加!“”

然后我被重定向到创建页面(这是空白的)。

因此,问题在于在创建动作和重定向之后更新字段。

Conntroller:

def create

  if File.exist?(Rails.root.join('uploads','',params[:document][:link]))
    redirect_to admin_documents_path, :notice => "Document with name #{params[:document][:link]} already exists. Please rename it and upload again!"
  else
    uploaded_io = params[:document][:content]
    File.open(Rails.root.join('uploads', '', uploaded_io.original_filename), 'wb') do |file|
      file.write(uploaded_io.read)
    end

    params[:document].merge!({ createdby: current_user.id })
    create!
    redirect_to admin_documents_path, :notice => "Document added!"

  end
end

在控制器中我正在上传新文件并检查现有的文件系统,更新一个字段并将文件保存在文件系统和文件属性中。

0 个答案:

没有答案