ruby-on-rails - 限制资源路由并在 Rails 3 中添加额外的非 RESTful 路由

标签 ruby-on-rails ruby routes

我无法在这里或其他地方找到任何涵盖限制资源路由和在 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 中有这样做的首选方法吗?

最佳答案

您可以将参数和 block 传递给资源:

resources :sessions, :only => [:new, :create, :destroy] do
  get :recovery, :on => :member
end

然后用 rake routes 测试它。

关于ruby-on-rails - 限制资源路由并在 Rails 3 中添加额外的非 RESTful 路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6404604/

相关文章:

ruby-on-rails - 如何在运行 bundle exec foreman start 时摆脱 Permission denied (publickey) 错误?

ruby-on-rails - rails 测试在 gitlab 管道中不起作用

ruby-on-rails - 从 Ruby on Rails Controller 本地保存呈现的静态 html、css、javascript 文件

ruby - 如何使用 Mechanize 从列表项中获取文本?

ruby-on-rails - Rails 模型和 Controller 命名语义?

ruby-on-rails - 每组 Rails LIMIT

ruby-on-rails - 用自定义图像替换损坏的外部图像

scala - 如何在 Play Framework 路由文件中使用导入和隐式?

ruby-on-rails - _path 的方法未定义,但路由存在

ruby-on-rails - 如何在 Rails 中指定 block 内的路由成员?