【发布时间】:2012-06-05 18:45:29
【问题描述】:
我创建了一个 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
我似乎无法理解我缺少什么,因此我们将不胜感激。
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-3 routes ruby-on-rails-3.2 rails-engines