2009-03-02 52 views
17

从一开始,Rails就出现了命名空间模型的问题。随着时间的推移,几乎每个人都放弃了使用它。包括我自己。Rails中的名称空间模型:工会的状态是什么?

随着Rails 2.3的出现,我想要更新一下情况。具体问题我想到的是:

  • 首先,它是否好去?
  • 表命名,遵循什么规则?
  • 协会,如何宣布他们与最简明?如何命名外键列?
  • 自动需求,如果你把模型文件放在一个与命名空间匹配的子目录中,它是否工作?或者,如何命名和放置文件的位置?
  • 代,模型生成器是否成功正确地处理名称空间?
  • 世代,脚手架发电机怎么样,包括控制器?
  • 应该注意哪些不兼容/怪癖?
+0

我意识到我是在问这个问题veeery懒,因为我可以快速地调查最自己的答案,但我在这里,希望有人经历了很多痛苦的已过去,并希望分享。 – kch 2009-03-02 09:43:10

+0

我认为这是一个很好的问题。我期待看到什么会回来,因为我是另一个想要它的人,尝试过它,感受到痛苦并放弃了。 – 2009-03-02 09:47:07

+1

这个问题现在已经很老了。我很好奇Rails 4.0现在如何改进。 – Andrew 2013-07-12 19:33:37

回答

14

我看到在这个问题上最好的书面记录是从Strictly Untyped。据我所知2.3还没有解决任何问题,这意味着他们仍然不可靠。

3

最近,我们有我们的公司内部关于这个大辩论。我认为在一天结束时,我们认为如果你不能在数据库中命名空间表,那么命名空间模型是没有意义的。我们选择了前缀我们的模型(用户,UserAddress,UserEmailAddresses),并把它们放入用户的目录,然后使用:

config.load_paths << "#{RAILS_ROOT}/app/models/users" 

加载模型。要控制在我们的模型的详细程度,我们经常这样做:

has_many :addresses, :class_name => "UserAddress" 

产生时,我们创造它,就好像没有命名空间(脚本/生成模型UserAddress),然后手动将其复制到用户目录。

耸耸肩。我想最后所有这些都给你带来了一个更清晰的目录结构,对于像我这样的VIM用户来说,这实际上更麻烦,但对于TextMaters来说这很好。

+0

好吧,作为一个TextMater,我必须告诉你,我cmd + T去文件,我很少使用文件浏览器。无论如何,这是适度的帮助,但你是否说你已经尝试了rails 2.3的命名空间,它仍然是SOL? – kch 2009-03-04 23:20:30

-2

我仍然远离它。当你考虑到代码中的简洁和缺乏简洁性和清晰度时,任何获得的东西(我不确定那是真的会是什么)肯定会丢失。

我最新的应用程序有87个资源,包括所有的地方管理功能。我看到没有必要使用命名空间,恕我直言。

相关问题