我试图将变量从我的控制器传递到自定义的activeadmin页面,但我似乎无法弄明白。
我基本上有一个上传文件的表单并解析它。如果它出现错误,它会抛出一个并重定向到自定义页面。
class ToolController < ApiController
def import
begin
Schedule.Parse(data)
rescue MissingDependencyError => e
@dependencies = "test"
redirect_to admin_import_path({}.merge(flash_error: "Missing Dependencies", dependency_error: true, :locals => { :m => e.object }))
end
end
class MissingDependencyError < StandardError
attr_reader :object
def initialize(object)
@object = object
end
end
ActiveAdmin.register_page "Import" do |lab|
menu false
content do
@dependencies
end
end
@dependencies以nil返回 - &gt;为什么呢?
我可以通过params hash传递它,但这不是正确的方法。
答案 0 :(得分:0)
在redirect_to
之后实例变量不可用... redirect_to
创建一个新的控制器实例,并且前一个控制器对象的所有实例变量都消失了。
您可以使用sessions hash
代替params哈希session[:dependencies] = "test"
和
content do
session[:dependencies]
end