我使用:
创建了一个Rails引擎(根据Rails Guides)rails plugin new address_book --full --mountable
我继续为引擎创建一个名为pages
的引擎,只需一个动作(名为temp
)即可显示单个视图,即app/views/address_book/pages/temp.html.erb
Engine的config / routes.rb是:
AddressBook::Engine.routes.draw do
match :temp, to: "pages#temp"
end
在父应用程序中,我在其routes.rb文件中添加了以下内容:
mount AddressBook::Engine => "/address_book", as: "address_book"
在其中一个父应用程序的控制器的操作中,我对属于引擎的视图进行了以下调用:
redirect_to address_book.temp_path
现在,即使rake routes
显示引擎的路径,当我尝试从浏览器执行操作时,我仍然会收到错误:
undefined local variable or method `address_book'
代码行redirect_to address_book.temp_path
rake路由的结果包含以下内容:
address_book /address_book AddressBook::Engine
Routes for AddressBook::Engine:
temp /temp(.:format) address_book/pages#temp
我似乎无法理解我所缺少的东西,所以任何帮助都会非常感激。
答案 0 :(得分:0)
经过长时间的试验和错误(并关闭了PC的夜晚)后,我意识到我需要做的只是重新启动服务器
希望这篇文章可以帮助其他人有同样的绊脚石。