我很新的Rails3中,我基本上创造了一个subscribers
脚手架,我只希望我的应用程序,以new
和create
行动作出回应。在Rails3中覆盖到/(root)的资源路径:不更改路径助手?
所以在config/routes.rb
我定义:
resources :subscribers, :only => [:new, :create]
哪那么在这里以这种方式工作
GET /subscribers => subscribers#new POST /subscribers => subscribers#create
现在,我想我的应用程序在/
(根)表现,而不是/subscribers
的用户资源,是我做了什么:
match '/' => "subscribers#new" match '/' => "subscribers#create" match '/' => "subscribers#thankyou" resources :subscribers, :only => [:new, :create]
这在某种程度上有效,但可能不是DRYest的事情:这里是我的问题:
- 当在创建浏览器有问题后要回窗体显示
/subscribers
网址,而不是仅仅/
,形式使用form_for(@subscriber)
helper方法,所以path
助手必须由路线 - 莫名其妙不受影响理想我甚至不希望应用程序来响应请求的
/subscribers
- 我注意到一个奇怪的错误,张贴在创建在断开连接的情况下(从
/
开始,然后在连接时进行刷新n回来了(浏览器要求重新提交=>确定),Rails应用程序崩溃了(我没有错误堆栈,虽然这是在生产中),为什么?
而且,我试图建立的路线是这样的:
resources :subscribers, :only => [:new, :create] do collection do post '/' => :create get '/' => :new end end
这可能是干燥的,但它并没有解决所有这些问题。
我相信这是一件很简单,请大家帮忙!
你战斗惯例,它总是会是一场艰苦的战斗。我会质疑不希望你的应用程序响应/订户和使用/为2或3个不同的行动的原因。你应该重新考虑你的架构。 – 2010-09-28 00:46:44
嘿bjeanes,我不想与公约打交道,它是即将到来的网站的邮件列表,所以几乎是唯一的事情,我认为有一个简单的方法可以将资源放在/? – 2010-09-28 21:40:27