在模型文件夹中的子文件夹内建模

时间:2010-07-02 21:45:49

标签: ruby-on-rails

我正在使用Ruby on Rails 2.3.8,我想知道如何在子文件夹中组织模型,以便Ruby可以识别它们。

4 个答案:

答案 0 :(得分:10)

据我所知,您需要命名模型以便加载它们。

使用生成器:

> ./script/generate model Customer::Address

将在app/models/customer/address.rb

中创建模型
class Customer::Address

end

它将以递归方式加载,但为了让rails找到它,它需要具有与路径对齐的命名空间。

当您使用发电机时(至少在导轨2.3.5及更低版本中,我已经对此进行了测试)的公平警告。它会将表名创建为customer_addresses,但默认情况下模型仍会查找表{8}的表名。您需要将迁移数据库名称更改为地址或添加addresses或类似名称以使两者排成一行。

答案 1 :(得分:3)

Rails将从子目录(对于Ruby 2.0+)以递归方式加载/ app / models中的所有模型。您可以将它们拆分为逻辑子目录:数据库,用户,客户等

答案 2 :(得分:1)

在Rails 5中,如果模型在Models / customer / address.rb中

您通过

访问它
Customer::Address.all

答案 3 :(得分:0)

然后要调用该模型,我必须像这样引用它:: Customer :: Address.all,不确定为什么它需要前导:::

相关问题