ruby-on-rails-3 – 为什么Rails 3.2.2在使用redirect_to时生成带有 assets前缀的URL?

ruby-on-rails-3 – 为什么Rails 3.2.2在使用redirect_to时生成带有 assets前缀的URL?,第1张

概述好吧标题问题几乎总结了,但我想详细说明一个场景, 我创建了一个DemoController,(我还没有创建一个Resource模型),我的routes.rb看起来像这样: DispatchMe::Application.routes.draw do root to: "demo#index"end 从演示控制器我得到以下内容: class DemoController < Applicati 好吧标题问题几乎总结了,但我想详细说明一个场景,

我创建了一个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?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1267121.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-08
下一篇 2022-06-08

发表评论

登录后才能评论

评论列表(0条)

保存