Я использую Ruby on Rails 2.3.8, и я хотел бы знать, как организовать модели в подпапках, таким образом, Ruby может распознать их.
Насколько я понимаю, вам необходимо создать пространство имен для ваших моделей, чтобы они загружались.
для использования генератора:
> ./script/generate model Customer::Address
создаст модель в app / models / customer / address.rb
class Customer::Address
end
Она будет загружаться рекурсивно, но для того, чтобы rails ее нашли, она должна иметь пространство имен, совпадающее с путем.
Справедливое предупреждение о том, что когда вы используете генератор (по крайней мере, в rails 2.3.5 и ниже - это все, на чем я это тестировал). Он создаст имя таблицы как customer_addresses
, но модель по-прежнему будет искать имя таблицы с адресами
. Вам нужно будет либо изменить имя базы данных миграции на адреса, либо добавить set_table_name 'customers_addresses'
или что-то подобное, чтобы выровнять их.
Rails будет загружать все модели в / app / models рекурсивно из подкаталогов (для Ruby 2.0+). Вы можете разделить их на логические подкаталоги: база данных, пользователи, клиенты и т. Д.