[解決済み] Rails 4: モデルを名前空間なしでサブパスに整理する?
質問
このようなものは可能でしょうか?
app/models/
app/models/users/user.rb
app/models/users/education.rb
を整理することが目的です。 /app/models フォルダをよりよく整理することですが、モデルを名前空間化する必要はありません。
Rails 3に関する未解決の質問はこちらです。 Rails 3.2.9とサブフォルダ内のモデルについて .
namespacesでtable_nameを指定するのはうまくいくようです( Rails 4のモデルサブフォルダ を参照)、しかし 名前空間なしで行いたい .
どのように解決するのですか?
デフォルトでは、Railsはmodelsディレクトリのサブフォルダをオートロードのパスに追加しません。そのため、名前空間付きのモデルしか見つけることができません。名前空間は、探すべきサブディレクトリを照らし出します。
のすべてのサブフォルダを追加するために app/models をオートロードのパスに追加するには、以下を config/application.rb :
config.autoload_paths += Dir[Rails.root.join("app", "models", "{*/}")]
また、より複雑な app/models ディレクトリにあるすべてのサブフォルダをグロブする上記の方法は app/models のすべてのサブフォルダを一緒にグロブする上記の方法は、正しく動作しない可能性があります。その場合は、もう少し明確にして、指定したサブフォルダーだけを追加することで回避できます。
config.autoload_paths += Rails.root.join("app", "models", "<my_subfolder_name1>")
config.autoload_paths += Rails.root.join("app", "models", "<my_subfolder_name2>")
Rails 4.1+のためのUPDATE
Rails 4.1では、アプリジェネレータに
config.autoload_paths
をデフォルトで含みません。そのため、上記は本当に
config/application.rb
.
アップデイト
上記コード内のオートロード・パスの例を修正して
{*/}
の代わりに
{**}
. 必ず
muichkineさんのコメント
をご覧ください。
関連
-
[解決済み】Rails: sudo "コマンドが認識されないのはなぜですか?
-
[解決済み] AWS S3です。アクセスしようとしているバケットは、指定されたエンドポイントを使用してアドレスされている必要があります。
-
[解決済み] Errno::EACCESS: パーミッションが拒否された @ dir_s_mkdir
-
[解決済み] railsでhidden fieldタグを使用する方法
-
[解決済み] Ruby: public static メソッドを作るには?
-
[解決済み] Heroku: 既存のrailsアプリにseeds.rbをプッシュする方法?
-
[解決済み] Ruby on rails アプリで ES6 (ES2015) を使用するにはどうすればよいですか?
-
[解決済み] Rails 4で、以前のバージョンのRailsでattr_accessibleを使用していた状況に遭遇した場合、Forbidden Attributes Errorが発生する。
-
[解決済み] Rails update_attributes without save?
-
[解決済み] Rails 4のhas_manyとorderの非推奨の警告
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】コレクションをDESCで並べる方法
-
[解決済み] Ruby/Rails の「フック」とは何ですか?
-
[解決済み] RailsのRootディレクトリのパス?
-
[解決済み] Rails のインストールに失敗する: activesupport には Ruby のバージョン >= 2.2.2 が必要です。
-
[解決済み] erbでコメントを追加する最適な方法
-
[解決済み] gemのアップデート後、"Asset was not declared to be precompiled in production "でテストが失敗する。
-
[解決済み] Railsコントローラからホスト名を取得する
-
[解決済み] railsで':remote => true'はどのように動作するのでしょうか?
-
[解決済み] サーバーはRailsで既に稼働している
-
[解決済み] railsでcheck_boxをcheckedにする方法は?