小编Tar*_*ari的帖子

在Rails3中覆盖到/(root)的资源路由:不更改路径帮助器?

我是Rails3的新手,我基本上创建了一个subscribers脚手架,我只希望我的应用程序响应newcreate操作.

所以config/routes.rb我定义:

resources :subscribers, :only => [:new, :create]

哪种方式有效

GET /subscribers => subscribers#new
POST /subscribers => subscribers#create

现在我希望我的应用程序在/(root)上展示订阅者资源而不是/subscribers,所以这就是我所做的:

match '/' => "subscribers#new"
match '/' => "subscribers#create"
match '/' => "subscribers#thankyou"
resources :subscribers, :only => [:new, :create]

哪种方式有效,但可能不是最糟糕的事情:这里有我遇到的问题:

  1. 在创建问题后回到表单时,浏览器显示的是/subscribersURL而不是just /,表单是使用form_for(@subscriber)辅助方法创建的,因此path帮助程序必须以某种方式不受路由影响
  2. 理想情况下,我甚至不希望应用程序响应请求 /subscribers
  3. 我注意到一个奇怪的错误,当在断开连接时发布表单(从/,然后在连接回来时进行刷新(浏览器要求重新提交=> OK)时,Rails应用程序崩溃(我没有错误堆栈,但是这是生产),为什么?

此外,我尝试以这种方式设置路线:

resources :subscribers, :only => [:new, :create] do
  collection do
    post '/' => :create
    get '/' …

routes ruby-on-rails rails-routing ruby-on-rails-3

9
推荐指数
1
解决办法
5516
查看次数