在我的公共控制人中,我有:
def index
@super = "test"
respond_to do |format|
format.html
format.js
end
end
我在views / public文件夹中为索引操作创建了index.js.erb
。
但是当我访问http://localhost:3000/.js
我得到No route matches [GET] "/.js"
以前在旧版本的导轨上工作...
答案 0 :(得分:2)
好吧,所以,我已经决定这可能是Rails团队故意阻止像“/.atom”这样的网址(因为真的,这看起来应该发生什么?),所以我是现在使用格式URL的第二个路径(获取“latest”,:action =>:index)(所以,比如“/latest.atom”)。
从问题来看,似乎发生在3.0和3.1之间的事情。
作为临时解决方案,我仍然需要深入了解,从root
移除routes.rb
并添加此get "/(.:format)" instead, to: "public#index"
。这应该有用。
是的,它可能与此commit有关。
root
match
使用/
将root
添加到路由列表中的API says。 /
以斜线结尾,所以...连接点。提交说明没有以|| path.end_with?('/')
结尾的路由格式。
我确实删除了actionpack/lib/action_dispatch/routing/mapper.rb
中的添加内容(root
),{{1}}现在可以使用格式。
答案 1 :(得分:0)
要确保不中断对root_path帮助程序的所有调用,请替换路由:
root :to => 'public#index'
使用:
get '/(.:format)' => 'public#index', :as => :root