我创建了一个 Rails 引擎(根据Rails Guides),使用:
rails plugin new address_book --full --mountable
我继续为引擎创建一个控制器,pages
使用单个操作(称为temp
)调用来显示单个视图,即app/views/address_book/pages/temp.html.erb
引擎的 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
我似乎无法理解我所缺少的,所以任何帮助将不胜感激。