私はEngraveというRailsエンジンを構築しています。レールのエンジンのビューの中に道路ヘルパーがありません
私はエンジンがそうのようにマウントされています:
# Routes.rb of the host app
mount Engrave::Engine => "/engrave", :as => "engrave_engine"
をこのエンジンの中で、私は「PostsControllerの」と呼ばれるコントローラを持っています。私はそうのようなポスト表示するには、このコントローラに移動したときに:/engrave/posts/1
を私はこのエラーを取得する:
undefined local variable or method `new_user_session_path'
エンジンにおけるPostsControllerのそうような、アプリケーションコントローラから継承されたエンジン制御装置、から継承している。
devise_for :users
new_user_session_pathへの呼び出し:私のようなセットアップを持っている
module Engrave
class PostsController < ApplicationController
...
end
class Engrave::ApplicationController < ApplicationController
end
new_user_session_pathが工夫によって定義されています、 layouts/application.html.erb
テンプレートファイルホストアプリケーション
このルートヘルパーがこのコンテキストで利用できない理由を理解できません。私は間違って何をしていますか?
技術的に問題を修正しているので、StrangeDaysの答えは正しいとマークしましたが、すべてのレイアウトテンプレートを変更しなくてもこの方法でエンジンを使用する方法が分かっていれば素晴らしいでしょう。私は周りに遊んで、私は孤立した/マウント可能なものの代わりに完全なエンジンを作成することによって、私が望むことを達成するために管理しました。私はまだ何かが欠けていると思う、私は私のケーキを持って、この1つでそれを食べたい。 – Jeff