【问题标题】:Rails routes: resourcing from the root path "/"Rails 路由:从根路径“/”获取资源
【发布时间】:2012-04-17 00:38:39
【问题描述】:

我有一个要路由到我的域根目录的查询资源。 (所以发布到“/”会转到queries#create 操作等...)。

我的路线.rb:

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

耙路线:

           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' 定义不在底部的原因。

编辑

当我将 :root 定义替换为 get "/" => "home#index", :as => "root" 时,它可以工作,但这对我来说太骇人听闻了。如何指定在 root 定义中使用哪些 HTTP 动词?

【问题讨论】:

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


    【解决方案1】:

    这行得通:

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

    【讨论】:

      【解决方案2】:

      您是在传递 :url => {:action = "create"} 还是 form_for 中的方法?

      【讨论】:

      • 是的,它是一个常规的形式,当查询是正常的资源时它工作得很好。
      • 你做得对,你应该指定控制器和你想要设置为 Web 应用程序根的操作。如果您还有问题,我会参考Rails Guides
      猜你喜欢
      • 1970-01-01
      • 2013-08-08
      • 2017-09-21
      • 1970-01-01
      • 1970-01-01
      • 2015-09-26
      • 2011-09-12
      • 2021-04-24
      • 2016-11-12
      相关资源
      最近更新 更多