我想在我的引擎中使Rails控制器規範工作。控制器測試看起來是這樣的:Rails引擎無法找到模板
module Notes
describe NotesController do
routes { Notes::Engine.routes }
it 'renders index' do
get 'index'
end
end
end
目前我使用與Combustion gem所以我的虛擬配置路由產生的仿真是:
# spec/internal/config/routes.rb
require 'notes'
require Notes::Engine.root.join('config/routes')
Rails.application.routes.draw do
mount Notes::Engine => '/', as: 'notes'
# mount Notes::Engine => '/notes'
end
問題1:
我想通過安裝引擎避免將引擎路由複製粘貼到虛擬配置文件中。但是,我無法找到正確的配置,以使routes { Notes::Engine.routes }
行符合我的規格。
問題2:試圖找到app/views
文件夾我的Rails假人./spec/internal
時
控制器規格失敗。到目前爲止,我通過從spec/internal/app
到我的真實./app
的符號鏈接解決了問題。
是否有一個更乾淨的方式來找到我的看法?我希望Rails dummy可以直接從引擎中提取應用程序文件夾,但不會在沒有鏈接的情況下發生。
Thanks @pat!我確實有'Rails :: Engine'子類。否則'Notes :: Engine.routes'這行不起作用。燃燒readme提到'routes.rb'文件,但我使用上面的方法來避免代碼重複。 – SystematicFrank 2015-04-04 13:25:19
我想可能只是將'config/routes.rb'文件和'app'文件夾的符號鏈接從生成的虛擬文件生成到我的引擎。它的作品,但它是如此骯髒的黑客,我想知道是否有更好的方法。 – SystematicFrank 2015-04-04 13:27:20
順便說一句。符號鏈接方式是我解決這裏提到的兩個問題的方法:https:// github。com/pat/combustion#using-actioncontroller-and-actionview – SystematicFrank 2015-04-04 13:32:25