Ruby on rails 从ActiveAdmin(RoR)中的集合调用类

Ruby on rails 从ActiveAdmin(RoR)中的集合调用类,ruby-on-rails,Ruby On Rails,我是RubyonRails的新手。我正在尝试从ActiveAdmin中的集合\u操作调用一个类。以下是代码(app/admin/models): 这是我想调用的类的代码(app/lib/route): 结束 我使用了重定向\u to来调用这个类,但是没有工作,我不知道该怎么做。有什么想法吗?谢谢 此代码取自 此收集操作将在以下位置生成路由: “/admin/posts/import\u csv”指向 管理员::PostsController#导入csv控制器操作 因此,这意味着您必须在app/c

我是RubyonRails的新手。我正在尝试从ActiveAdmin中的
集合\u操作
调用一个类。以下是代码(app/admin/models):

这是我想调用的类的代码(app/lib/route):

结束

我使用了
重定向\u to
来调用这个类,但是没有工作,我不知道该怎么做。有什么想法吗?谢谢

此代码取自

此收集操作将在以下位置生成路由: “/admin/posts/import\u csv”指向 管理员::PostsController#导入csv控制器操作

因此,这意味着您必须在app/controllers/admin/posts\u controller.rb中添加import\u csv方法。在此方法中,您可以实例化您的模型:

def import_csv
  import_route = ImportRoute.new
  # do stuff on this object
end

您可以轻松地将其改编为您的代码

谢谢!只有几个问题:索引意味着什么?在我的例子中,类似于:action=>:import\u route?我没有任何名为pos_controller.rbI的类,在Admin中也没有posts文件。最后,我解决了它,将ImportRoute.new添加到集合操作中,而没有重定向到,目前还没有抱怨!:index是在方法import_CSV中导入CSV数据后将重定向的操作(方法)的名称。RFC2616说,每次发布后,都应该重定向到GET资源。。。
class ImportRoute
def  initialize
    @seperator = " "
    @time_format = "%d-%m-%y"
end
def run(filename)
    puts "Running route import file"

    raise "File" + filename + "doesn't not exist" unless File.exist(filename)

    ri = RouteImporter.find(:name => self.class.name)

    if(ri.nil?)
        puts "Error, file doesn't exists"
    end
    CSV.foreach(filename, {:col_sep => @seperator}) do |row|
        if row.lenght >5
            ri.country_name = row[0] + " " + row[1]
            ri.type = row[2]
            ri.company = row [3]
        else
            ri.country_name = row[0]
            ri.type = row[1]
            ri.company = row[2]
            ri.date = row[4].gsub(";", " ")
        end
    end
end
ActiveAdmin.register Post do
  collection_action :import_csv, :method => :post do
    # Do some CSV importing work here...
    redirect_to {:action => :index}, :notice => "CSV imported successfully!"
  end
end
def import_csv
  import_route = ImportRoute.new
  # do stuff on this object
end