0

在我的公共控制器中,我有:

  def index
    @super =  "test"
     respond_to do |format|
      format.html
      format.js
    end
  end

index.js.erb在views/public 文件夹中为索引操作创建了一个。

但是当我访问http://localhost:3000/.js

我明白了No route matches [GET] "/.js"

这以前在旧版本的导轨上工作过......

4

2 回答 2

2

这个非常准确的问题是一年前在这里提出的。提问者得出结论,我引用

好的,所以,我认为这可能是 Rails 团队故意阻止像“/.atom”这样的 URL 的事情(因为真的,这看起来像应该发生的事情吗?),所以我现在使用格式 URL(例如,“/latest.atom”)的第二条路线(获取“最新”,:action => :index)。

从这个问题来看,似乎是在 3.0 和 3.1 之间发生了一些事情。

作为一个临时解决方案,我仍然需要深入,从中删除rootroutes.rb添加 this get "/(.:format)" instead, to: "public#index"。这应该有效。

编辑

是的,它可能与此提交有关。

API 明确表示用于root添加match/路由列表。root以斜线结尾,所以...连接点。提交说没有以 . 结尾的路由格式/

我确实删除了添加 ( || path.end_with?('/'))actionpack/lib/action_dispatch/routing/mapper.rb并且root现在可以具有格式。

于 2013-01-24T18:26:02.723 回答
0

为确保您不会中断对 root_path 帮助程序的所有调用,请替换路由:

root :to => 'public#index'

和:

get '/(.:format)' => 'public#index', :as => :root
于 2013-07-26T18:06:48.797 回答