Rails路由:从根路径“/”资源

时间:2012-04-17 00:38:39

标签: ruby-on-rails ruby-on-rails-3 routes

我有一个Query资源,我想要路由到我的域的根目录。 (所以张贴到“/”会转到queries#create行动等等。)。

我的routes.rb:

root :to => "home#index"
resources :queries, :path => ''

rake routes:

           root        /                                           home#index
        queries GET    /                                           queries#index
                POST   /                                           queries#create

一切似乎都很好,但是当我尝试发布到“/”时,它会以某种方式被路由到'root_path',即使我是通过POST提交的。因此,它不是创建一个新的Query项,而只是重新加载主页。我在日志中得到了这个:

Started POST "/" for 127.0.0.1 at 2012-04-16 20:34:58 -0400
Processing by HomeController#index as HTML

知道我做错了吗?

修改

当我将:root =>移动到控制器的最底部时,我在GET "/"时得到一个重定向循环,这就是为什么我的':root'定义不在底部。

修改

当我用get "/" => "home#index", :as => "root"替换:root定义时,它会起作用,但这对我来说太过于苛刻了。如何在root定义中指定要使用的HTTP谓词?

2 个答案:

答案 0 :(得分:4)

这有效:

get "/" => "home#index", :as => "root"

答案 1 :(得分:0)

您是否通过了:url => {:action =“create”}或form_for中的方法?