我有一个 Fruit 的父类和 Apple 和 Orange 的子类。我最开始想象 Ruby-China 中 notification 那样都放到一个 Fruit 的 namespace 中。结果出现好多问题,解决了很多,最后的 form_for link_for 等还是不 work。只好放弃。其实我只是不想把太多的类放到 app/models 下,不存在名字冲突的矛盾。所以最后创建了 app/models/fruit 目录,然后把这些类都放到里面去,一样方便管理。 是不是最好不要使用 namespace model?namespace 一般什么时候使用?
config.autoload_paths += %W( #{RAILS_ROOT}/app/models/fruit )
这样其他的 helper 就照常使用了。
#7 楼 @dreamable Rails 默认只加载 /app/models 文件下的所有 models,有两种方法加载其他文件夹的 models,一种就是 namespace,然后所有的 helper 方法都得加 namespace 前缀,另一种就是在配置文件里加,就像我上面说的,用这种方法,所有的 helper 和原来一样使用,不需做改变。