blogこの広告は、90日以上更新していないブログに表示しています。railsとあるサービスのconfig/routes.rbが肥大化してきたので、分割したくなっていたので、調べていた。ググってみると色々方法があるらしいが、バージョンごとにやり方が違ったりしてげんなりする。出てくるconfig.paths["config/routes"]をいじる方法は、どうもRails4からは削除されていて動かないようだ。いうことで黒魔術を使った。SomeModule.apply(self)end解説Your::Application.routes.drawの実態は、ActionDispatch::Routing::RouteSet#drawというやつのようで、その実装は、次のようになっている。:eval_blockなので、drawしたときに作成する&blockの実態は、instance_execのコンテキストで実行されているようだ。endとなっていて、こちらもinstance_execになっている。コンテキストを受けとって、コンテキストに対してinstance_execしてやれば同じコンテキストで実行できるので、instance_exec以降は通常のroutesと同じことが記述できる。開発環境で再起動しなくても読みなおせるようにloadで読みこんでいるが、config/routes.rbのtimestampを更新しないと再読みこみしないのがどうしたもんかなーという感じではある。(1)はてなブログをはじめよう!walf443さんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。