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