rails engine のハマりどころ
仕事で使えそうなツール作りが日課になりつつあって最新作はrails engineで作った。
rails engineというのを初めて使ったのでちょっとハマった。
rails engine側がrailsアプリのlayoutテンプレートを参照してしまう
rails_engine/application.html.erb
を参照して欲しいのに、application.html.erb
を 参照してる。
原因はcontrollerの継承先にネームスペースがついていなかったことだった。
> - SugoiHttpTesterRails::ProjectsController < ApplicationController
> + SugoiHttpTesterRails::ProjectsController < SugoiHttpTesterRails::ApplicationController
ヘッダーとフッターに本体のテキストを表示したい
本体とengineは分離する構造なのでビューを混ぜるのはできなさそう。(engine側のnamed routesは呼べる)
engine部分は iframe で表示することにした。engineを使っているgemだとそれがよくある実装らしい。
<div style='height: 800px'>
<iframe width='100%' height='100%' src="/_http_tester"></iframe>
</div>
# config/http_tester
mount SugoiHttpTesterRails::Engine => "/_http_tester", as: :http_tester
get 'http_tester' => 'http_tester#index'
感想
iframe微妙
-
category:
- ruby tags: