Я собираю свои модели в подкаталоги, как показано ниже. Я пробовал все решения, перечисленные в StackOverflow, а также некоторые другие продолжают получать ошибки. Кажется, простая задача, и мне нужна помощь.Организация файлов моделей рельсов в подкаталоги
Makandra - Organizing Large Rails apps
Rails 4: organize rails models in sub path without namespacing models?
How to organize Rails models that are too fat?
Rails models in subfolders and relationships
Однако, я получаю эту ошибку:
ActiveRecord::StatementInvalid: Could not find table 'blog_posts'
конфигурации/application.rb:
1 require File.expand_path('../boot', __FILE__)
2
3 require 'rails/all'
4
5 # Require the gems listed in Gemfile, including any gems
6 # you've limited to :test, :development, or :production.
7 Bundler.require(*Rails.groups)
8
9 module Multifile
10 class Application < Rails::Application
11 # Settings in config/environments/* take precedence over those specified here.
12 # Application configuration should go into files in config/initializers
13 # -- all .rb files in that directory are automatically loaded.
14
15 # Set Time.zone default to the specified zone and make Active Record auto-convert to this zone.
16 # Run "rake -D time" for a list of tasks for finding time zone names. Default is UTC.
17 # config.time_zone = 'Central Time (US & Canada)'
18
19 # The default locale is :en and all translations from config/locales/*.rb,yml are auto loaded.
20 # config.i18n.load_path += Dir[Rails.root.join('my', 'locales', '*.{rb,yml}').to_s]
21 # config.i18n.default_locale = :de
22
23 # Do not swallow errors in after_commit/after_rollback callbacks.
24 config.active_record.raise_in_transactional_callbacks = true
25 end
26 end
Файлы:
app/models
├── blog
│ └── post.rb
├── blog.rb
└── concerns
Маршруты:
3 resources :blogs do
4 resources :posts
5 end
модели/блог/post.rb
13 class Blog::Post < ActiveRecord::Base
14 belongs_to :blog
15 end
модели/blog.rb
11 class Blog < ActiveRecord::Base
12 has_many :posts
13 end
Спасибо! Я просто стараюсь, чтобы мои модели были организованы и готовы к масштабированию. Будет легче отделить или переместить мои ассоциации, если мои таблицы будут указаны отдельно. Однако я открыт для альтернатив. Любые предложения по организации более крупных приложений? – eternal44
Это действительно открытый вопрос, ответ зависит от многих ограничений, которые, вероятно, пока неизвестны. Для более крупных приложений вам может быть лучше разделить его на разные приложения, которые обмениваются данными через API. Я предлагаю остаться с соглашениями Rails - в качестве меры безопасности, чтобы держаться подальше от дальнейшей боли в дороге - и адаптировать приложение, как только появятся требования, а не раньше. В этом случае я бы назвал модель 'Post'. Если у вас много моделей «Post», я бы назвал его «BlogPost» и назвал таблицу «blog_posts». Если вы предпочитаете формат имен для модели, я все равно буду искать «blog_posts». Мои 2 cts. – dgilperez
Вы правы, это уже вызвало проблемы: я не могу генерировать новые сообщения с помощью этого метода. – eternal44