限制资源路由并在Rails 3中添加其他非RESTful路由
我无法在这里或其他任何地方找到限制资源路由和在Rails 3中添加其他非RESTful路由的任何内容。这可能非常简单,但我遇到的每个示例或解释只解决了一个案例,而不是两个同一时间。
这是我在Rails 2中所做的一个例子:
map.resources :sessions, :only => [:new, :create, :destroy], :member => {:recovery => :get}
非常简单,我们只需要7个RESTful路由中的3个,因为其他路由对此资源没有任何意义,但我们还想添加另一个用于帐户恢复的路由。
现在,从我收集到的任何一件事情中,其中一件事情也非常简单:
resources :sessions, :only => [:new, :create, :destroy]
就像在Rails 2中一样。并且:
resources :sessions do member do get :recovery end end
那么,我如何将这两者结合起来呢? 我还可以使用旧的Rails 2方式吗? 在Rails 3中有一种首选的方法吗?
您可以将参数和块传递给resources
:
resources :sessions, :only => [:new, :create, :destroy] do get :recovery, :on => :member end
并用rake routes
测试它。
它应该像这样工作
resources :sessions, :only => [:new, :create, :destroy] do member do get :recovery end end
正如coreyward所提出的,还有一种更短的方式。
检查导轨导轨,“ 从外部进行导轨布线 ”。 我还可以推荐Obie Fernandez的“The Rails 3 Way”,它在Routing和RESt上有两个相当不错的章节。
干杯
- / usr / bin / env ruby_noexec_wrapper失败,没有文件或目录
- 如何使用mysql安装Ruby on Rails并使其正常工作,一步一步指导?
- Mac OS X上未初始化的常量Gem :: UserInteraction(NameError)
- Rally API:投资组合项目的文档列表?
- Rails Link_to with Loop – RESTful路由
- 从3.5升级到Paperclip 4.1时没有validates_attachment_file_name
- Regexp.last_match线程安全吗?
- 如何从初始化程序扩展类并在开发环境中重新加载?
- 查找数组中最常见的字符串