0

我创建了一个 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

我似乎无法理解我所缺少的,所以任何帮助将不胜感激。

4

1 回答 1

0

经过长时间的反复试验(并关闭PC一夜),我意识到我需要做的就是重新启动服务器

希望这篇文章能帮助其他遇到同样绊脚石的人。

于 2012-06-06T09:26:54.527 回答