如何解决简单的redirect_以显示路径不起作用
| 创建后,我试图显示资源。 routes.rb resources :eco_systems do
member do
get \'new\'
post \'create\'
get \'show\'
end
end
eco_systems_controller.rb
class EcoSystemsController < ApplicationController
def new
@eco_system = EcoSystem.new
end
def create
@eco_system = current_user.eco_systems.create(params[:eco_system])
redirect_to eco_system_path(@eco_system.id)
end
def show
end
end
运行redirect_to eco_system_path(@eco_system.id)
时,结果URL为
http://localhost:3000/eco_systems/5
控制台输出:
Started GET \"/eco_systems/5\" for 127.0.0.1 at 2011-06-14 16:04:22 +1000
Processing by EcoSystemsController#new as HTML
Parameters: {\"id\"=>\"5\"}
但是加载的页面是新页面。为什么不加载显示动作/视图?
解决方法
之所以会这样,是因为如果您运行
rake routes
,则在new
之后定义了show
动作,您会看到
eco_system GET /eco_systems/:id(.:format) {:action=>\"new\",:controller=>\"eco_systems\"}
POST /eco_systems/:id(.:format) {:action=>\"create\",:controller=>\"eco_systems\"}
GET /eco_systems/:id(.:format) {:action=>\"show\",:controller=>\"eco_systems\"}
从顶部开始检查路线时,将调用第一个操作
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。