我对Rails3还是很陌生,我基本上创建了一个subscribers脚手架,我只希望我的应用响应newcreate Action 。

因此,在config/routes.rb中,我定义了:

资源:subscribers,:only => [:new,:create]

哪个以这种方式工作

GET/subscribers =>订阅者#new
POST/订阅者=>订阅者#创建

现在,我希望我的应用程序在/(根目录)而不是/subscribers处展示订阅者资源,所以这是我做的事情:

匹配'/'=>“subscribers#new”
匹配'/'=>“subscribers#create”
匹配'/'=>“subscribers#thankyou”
资源:subscribers,:only => [:new,:create]

哪种方法可行,但可能不是最干的事情:这是我遇到的问题:

  • 在创建问题后返回表单时,浏览器将显示/subscribers URL而不是/,表单是使用form_for(@subscriber) helper方法创建的,因此path helper必须以某种方式不受
  • 路由的影响
  • 理想情况下,我什至不希望应用程序响应/subscribers上的请求
  • 我注意到一个怪异的错误,当断开连接发布表单时(来自/,然后在连接恢复时进行刷新(浏览器要求重新提交=> OK),Rails应用程序崩溃(我没有错误堆栈) (因为这是在生产中),为什么会这样?

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

    资源:subscribers,:only => [:new,:create]
    收集做
    发表'/'=>:create
    得到'/'=>:new
    结尾
    结尾

    这可能是DRYer,但不能解决所有这些问题。

    我敢肯定这很简单,请帮忙!

    最佳答案

    感谢您的回答,它帮助我找到了解决问题的确切方法:

    资源:subscribers,:only => [:new,:create],:path =>'',:path_names => {:new =>''}

    经过测试并在Rails 3上工作:)

    关于ruby-on-rails - 在Rails3中覆盖到/(根)的资源路由: not changing the path helper?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3796979/

    10-11 09:21