Ruby on rails 我应该将既不是模型、视图也不是控制器的类文件放在哪里?
我有一个rails应用程序。对于我的一个模型,我创建了一个特定的类,除了在这个特定的模型中,它可能永远不会在其他任何地方使用 我应该把这个类对应的文件和它对应的测试文件放在哪里Ruby on rails 我应该将既不是模型、视图也不是控制器的类文件放在哪里?,ruby-on-rails,ruby-on-rails-3,ruby-on-rails-4,ruby-on-rails-3.2,Ruby On Rails,Ruby On Rails 3,Ruby On Rails 4,Ruby On Rails 3.2,我有一个rails应用程序。对于我的一个模型,我创建了一个特定的类,除了在这个特定的模型中,它可能永远不会在其他任何地方使用 我应该把这个类对应的文件和它对应的测试文件放在哪里 我目前将它放在/lib中,但由于它永远不会在其他地方使用,我认为这不是它的正确位置。我认为这个问题没有绝对正确的答案,因为类可以放在几个不同的位置,所有这些位置都可以让程序使用,这更多的是组织偏好的问题 tl;lib博士很好 选项: 模型目录 如果类与程序域相关,则将其放在此处可能有意义。您甚至可以将它命名为名称空间,
我目前将它放在/lib中,但由于它永远不会在其他地方使用,我认为这不是它的正确位置。我认为这个问题没有绝对正确的答案,因为类可以放在几个不同的位置,所有这些位置都可以让程序使用,这更多的是组织偏好的问题 tl;lib博士很好 选项:
- 如果类与程序域相关,则将其放在此处可能有意义。您甚至可以将它命名为名称空间,并将其放在一个目录中,以使其脱离主目录,并相对于其函数对其进行组织
app/models/user/password.rb的
user::password
- 如果类与程序域正交,则lib可能是正确的位置。如果领域特定的东西阻塞了你的模型,也可以放在这里
lib/soap\u client.rb
- 可能不是最好的选择,因为它隐藏了类的存在(如果您正在查看目录结构)
- 比如定制
异常
类之类的东西
我不认为这个问题有一个绝对正确的答案,因为课程可以放在几个不同的位置,所有这些都可以让课程使用,这更多的是组织偏好的问题 tl;lib博士很好 选项:
- 如果类与程序域相关,则将其放在此处可能有意义。您甚至可以将它命名为名称空间,并将其放在一个目录中,以使其脱离主目录,并相对于其函数对其进行组织
app/models/user/password.rb的
user::password
- 如果类与程序域正交,则lib可能是正确的位置。如果领域特定的东西阻塞了你的模型,也可以放在这里
lib/soap\u client.rb
- 可能不是最好的选择,因为它隐藏了类的存在(如果您正在查看目录结构)
- 比如定制
异常
类之类的东西
正如@jstim所说,没有具体的方法 但您可以使用演示者或装饰来实现此目的 在应用程序目录中创建一个文件夹作为演示者或装饰者 创建一个文件some_file.eb 在这种情况下,您可以创建该类并在您想要的任何控制器中使用它 app/presenters/some_file.eb
class ClassName
def your_method
end
end
正如@jstim所说,没有具体的方法 但您可以使用演示者或装饰来实现此目的 在应用程序目录中创建一个文件夹作为演示者或装饰者 创建一个文件some_file.eb 在这种情况下,您可以创建该类并在您想要的任何控制器中使用它 app/presenters/some_file.eb
class ClassName
def your_method
end
end
在选项1中,我是否必须更改自动加载路径?不,我相信它应该加载其中的所有内容。只有一种方法可以找到答案:)@PierreMichard不,正如@jstim所说,Rails将自动加载app/目录下的所有内容。您甚至可以拥有自己的子目录,例如将包含的
app/decorators
。在选项1中,我是否必须更改自动加载路径?不,我相信它应该加载其中的所有内容。只有一种方法可以找到答案:)@PierreMichard不,正如@jstim所说,Rails将自动加载app/目录下的所有内容。您甚至可以拥有自己的子目录,例如app/decorators
,这些子目录将包括在内。