我在哪里放置既不是模型,视图也不是控制器的类文件?

时间:2015-12-25 23:48:52

标签: ruby-on-rails ruby-on-rails-3 ruby-on-rails-4 ruby-on-rails-3.2

我有一个rails应用程序。对于我的一个模型,我创建了一个特定的类,它可能永远不会在这个特定模型中的任何地方使用。

我应该在哪里放置与此类及其相应测试文件对应的文件?

我目前将它放在/ lib中,但由于它永远不会在别处使用,我认为这不适合它。

2 个答案:

答案 0 :(得分:3)

我认为这个问题没有一个绝对正确的答案,因为课程可以放在几个不同的位置,所有这些都可以让程序使用它,而这更多的是组织偏好。

tl; dr lib就好了。

选项:

  1. 模型目录
    • 如果该类与程序域相关,则将其放在此处可能是有意义的。您甚至可以命名它并将其放在目录中以将其从主目录中取出并相对于其功能进行组织。
    • {li> app/models/user/password.rb User::Password
  2. lib目录
    • 如果类与程序域正交,则lib可能是正确的位置。如果它阻塞你的模型目录,那么域特定的东西也可以到这里。
    • lib/soap_client.rb
  3. 在使用它的模型的文件中
    • 可能不是最好的选择,因为它隐藏了类的存在(如果你正在查看目录结构)
    • 对于类似自定义Exception类之类的东西或许?

答案 1 :(得分:0)

正如@jstim所说,没有具体方法。

但你可以使用演示者或装饰这个

在app目录中创建一个文件夹作为演示者或装饰者。

创建文件 some_file.eb 在这里你可以创建类并在任何你想要的控制器中使用它。

应用程序/主持人/ some_file.eb

class ClassName
  def your_method
  end
end