2010-07-02 70 views

回答

8

为了我的理解,您需要为模型命名空间以便加载它们。

使用发电机:

> ./script/generate model Customer::Address 

将在app/models/customer/address.rb

class Customer::Address 

end 

创建模型,可以将递归加载,但为了铁轨找到它,它需要有命名空间与路径一致。

公平的警告,当你使用发电机(至少在轨道2.3.5和更低的是我已经测试过)。它将创建表名称customer_addresses,但该模型默认仍会查找表名称addresses。您将需要将迁移数据库名称更改为地址,或者添加set_table_name 'customers_addresses'或类似的名称以使两者一致。

3

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

相关问题