ruby-on-rails – 如果我在不同的子目录中有多个控制器,如何使用
发布时间:2020-12-17 03:57:28 所属栏目:百科 来源:网络整理
导读:我已经创建了一个小应用程序来学习RoR. (图书数据库)它由只读区域和读写管理区域组成. 在我首先使用管理功能之后,我已将控制器移动到子目录中并创建了只读控制器. 现在,当我在管理区域更新书籍时,redirect_to功能会重定向到只读区域. 我错过了什么? 这是我
我已经创建了一个小应用程序来学习RoR. (图书数据库)它由只读区域和读写管理区域组成.
在我首先使用管理功能之后,我已将控制器移动到子目录中并创建了只读控制器. 现在,当我在管理区域更新书籍时,redirect_to功能会重定向到只读区域. 我错过了什么? 这是我正在使用的代码: class Admin::BooksController < ApplicationController <snip> def update @book = Book.find params[:id] respond_to do |format| if @book.update_attributes params[:book] flash[:notice] = "Book updated" format.html { redirect_to @book } format.xml { head :ok } else <snip> end end end <snip> end 此更新本身有效,但它将我重定向到/ books / 1,但我希望它重定向到/ admin / books / 1.我可以硬编码正确的路径,但我想这不是很好的风格. 什么是正确的方法? PS:如果您需要更多信息,请发表评论. 解决方法
你告诉它重定向到书,因为你正在使用rails内置神奇的识别它应该对@book对象做什么(这是建立一个使用书籍控制器显示书籍的URL.
format.html { redirect_to @book } 如果你想要它去其他地方,你需要明确你想要它使用 format.html { redirect_to :controller => 'admin/book',:action => 'show',:id => @book } 或者使用像klew指出的路径. 所以更多细节 – redirect_to(@book)或 redirect_to book_path(@book) 都是这个的捷径: redirect_to:controller => book,:action => ‘show’,:id => @ book.id (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |