如何编写和包括轨道上的常规红宝石课



我正在学习轨道。我有一个控制器负责从用户上传的解析文件中介绍数据。我不希望数据存储在模型中的任何地方。我可以在控制器方法中包括可以实例化的课程吗?这是我的意思的基本代码示例:

此控制器仅包含一种方法:

class MyController < ApplicationController
    def index
        test = FileProcessorService.new
        @test = test.test()
    end
end

这是当实例调用其方法时处理逻辑的类:

class FileProcessorService
    def test
        return 'This is a test'
    end
end

我的问题:

在哪里存储此课程的最佳地点是?如何在控制器中参考此类?关于在铁轨中使用课程的这个特定主题有什么建议吗?控制器中有常规的Ruby A类问题的实例吗?我不希望用户看到相同的数据。这就是为什么我不想在控制器中包含全局变量的原因。没有模型,因为我使用Java MVC有MVC后台。一旦我了解基本导轨控制器功能的工作方式,我将继续进行模型。

预先感谢您的帮助。

我通常将它们放在app/classes中,或者如果有很多,则将其放入更具体的文件夹中,喜欢app/servicesapp/notifiers,等等。

您可以在config/application.rb中启用自动加载:

config.autoload_paths += %W(#{config.root}/app/classes #{config.root}/app/services)

如果它们不是专门应用的,请将它们提取到宝石中。

最新更新