我创建了一个DemoController,(我还没有创建一个Resource模型),我的routes.rb看起来像这样:
dispatchMe::Application.routes.draw do root to: "demo#index"end
从演示控制器我得到以下内容:
class DemoController < ApplicationController def index redirect_to :action => 'show' end def show endend
当然,app / vIEws / demo / show.HTML.erb中有一个文件,我希望该模板可以呈现,但我得到以下错误:
ActionController :: RoutingError(没有路由匹配[GET]“/ assets”)
并且此URL是根据重定向生成的:
?/资产=动作表演和放大器;控制器=演示
我在这里错过了什么吗?我认为rails应该为这种情况呈现动作的模板.
注意.我明白如果我创建一个像’get’=>这样的路线“demo#show”并调用redirect_to show_path它会工作得很好,但我需要知道这是否是强制性的?
非常感谢你!
解决方法 对于所需的行为,请使用render而不是redirect_to:class PagesController < ApplicationController def index render :action => "show" end def show endend
编辑:
您可以在其他 *** 作上使用redirect_to,但据我所知,索引 *** 作会设置基本路径.要简化路由定义,请使用资源:controller_name.您可以通过在命令行中键入rake routes来查看资源生成的路由.
例:
demo_controller.rb
class DemoController < ApplicationController def index end def show redirect_to :action => 'index' endend
的routes.rb
dispatchMe::Application.routes.draw do root to: "demo#index" resources :demoend
development.log
Started GET "/demo/show" for 127.0.0.1 at 2012-04-04 14:55:25 -0400Processing by DemoController#show as HTML Parameters: {"ID"=>"show"}Redirected to http://dispatch.dev/Completed 302 Found in 0ms (ActiveRecord: 0.0ms)总结
以上是内存溢出为你收集整理的ruby-on-rails-3 – 为什么Rails 3.2.2在使用redirect_to时生成带有/ assets前缀的URL?全部内容,希望文章能够帮你解决ruby-on-rails-3 – 为什么Rails 3.2.2在使用redirect_to时生成带有/ assets前缀的URL?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)