轨道 '3.2.10' .js.erb 模板没有路线匹配



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

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

我已经为视图/公用文件夹中的索引操作创建了一个index.js.erb

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

我得到No route matches [GET] "/.js"

这以前在旧版本的轨道上已经有效...

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

好的,所以,我已经决定这可能是 Rails 团队故意阻止像"/.atom"这样的 URL 的事情(因为真的,这看起来像应该发生的事情吗?),所以我现在使用第二条路由(获取"latest",:action => :index)作为格式 URL(所以,比如"/latest.atom")。

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

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

编辑

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

API 特别指出,root使用match/添加到路由列表中。 root以斜杠结尾,所以...连接点。提交说路由没有格式以 / 结尾。

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

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

root :to => 'public#index'

跟:

get '/(.:format)' => 'public#index', :as => :root

相关内容

  • 没有找到相关文章

最新更新