我的 class 既不是模型、视图也不是控制器的文件放在哪里?
Where do I put my class files which are neither model, view nor controller?
我有一个 rails 应用程序。对于我的一个模型,我创建了一个特定的 class,除了这个特定模型,它可能永远不会在其他任何地方使用。
这个class对应的文件和对应的测试文件应该放在哪里?
我目前将它放在 /lib 中,但由于它永远不会在其他地方使用,所以我认为这不是放置它的正确位置。
我认为这个问题没有绝对正确的答案,因为 class 可以放在几个不同的位置,所有这些位置都可以供程序使用,这更多是组织偏好的问题.
tl;dr lib 就好了。
选项:
- 模型目录
- 如果class与程序域相关,放在这里可能有意义。您甚至可以为它命名空间并将其放在一个目录中以将其从主目录中取出并根据其功能组织它。
app/models/user/password.rb
对于 User::Password
- lib目录
- 如果 class 与程序域正交,则 lib 可能是正确的位置。如果领域特定的东西阻塞了你的模型目录,也可以放在这里。
lib/soap_client.rb
- 在使用它的模型的文件中
- 可能不是最好的选择,因为它隐藏了 classes 存在(如果您正在查看目录结构)
- 对于自定义
Exception
class 之类的东西?
正如@jsstim所说,没有具体的方法。
但是你可以使用展示器或装饰器来装饰这个
在应用程序目录中创建一个文件夹作为演示者或装饰器。
创建文件some_file.eb
在此您可以创建 class 并在您想要的任何控制器中使用它。
app/presenters/some_file.eb
class ClassName
def your_method
end
end
我有一个 rails 应用程序。对于我的一个模型,我创建了一个特定的 class,除了这个特定模型,它可能永远不会在其他任何地方使用。
这个class对应的文件和对应的测试文件应该放在哪里?
我目前将它放在 /lib 中,但由于它永远不会在其他地方使用,所以我认为这不是放置它的正确位置。
我认为这个问题没有绝对正确的答案,因为 class 可以放在几个不同的位置,所有这些位置都可以供程序使用,这更多是组织偏好的问题.
tl;dr lib 就好了。
选项:
- 模型目录
- 如果class与程序域相关,放在这里可能有意义。您甚至可以为它命名空间并将其放在一个目录中以将其从主目录中取出并根据其功能组织它。
app/models/user/password.rb
对于User::Password
- lib目录
- 如果 class 与程序域正交,则 lib 可能是正确的位置。如果领域特定的东西阻塞了你的模型目录,也可以放在这里。
lib/soap_client.rb
- 在使用它的模型的文件中
- 可能不是最好的选择,因为它隐藏了 classes 存在(如果您正在查看目录结构)
- 对于自定义
Exception
class 之类的东西?
正如@jsstim所说,没有具体的方法。
但是你可以使用展示器或装饰器来装饰这个
在应用程序目录中创建一个文件夹作为演示者或装饰器。
创建文件some_file.eb 在此您可以创建 class 并在您想要的任何控制器中使用它。
app/presenters/some_file.eb
class ClassName
def your_method
end
end