欢迎来到代码驿站!

Ruby

当前位置:首页 > 脚本语言 > Ruby

关于Ruby on Rails路由配置的一些建议

时间:2021-06-15 09:16:01|栏目:Ruby|点击:

当你需要加入一个或多个动作至一个 RESTful 资源时(你真的需要吗?),使用 member and collection 路由。

  # 差
  get 'subscriptions/:id/unsubscribe'
  resources :subscriptions

  # 好
  resources :subscriptions do
   get 'unsubscribe', on: :member
  end

  # 差
  get 'photos/search'
  resources :photos

  # 好
  resources :photos do
   get 'search', on: :collection
  end

    若你需要定义多个 member/collection 路由时,使用替代的区块语法(block syntax)。

  

 resources :subscriptions do
   member do
    get 'unsubscribe'
    # 更多路由
   end
  end

  resources :photos do
   collection do
    get 'search'
    # 更多路由
   end
  end

    使用嵌套路由(nested routes)来更佳地表达与 ActiveRecord 模型的关系。

  

 class Post < ActiveRecord::Base
   has_many :comments
  end

  class Comments < ActiveRecord::Base
   belongs_to :post
  end

  # routes.rb
  resources :posts do
   resources :comments
  end

    使用命名空间路由来群组相关的行为。

  namespace :admin do
   # Directs /admin/products/* to Admin::ProductsController
   # (app/controllers/admin/products_controller.rb)
   resources :products
  end

    不要在控制器里使用留给后人般的疯狂路由(legacy wild controller route)。这种路由会让每个控制器的动作透过 GET 请求存取。

  # 非常差
  match ':controller(/:action(/:id(.:format)))'


上一篇:以MVC的思维方式来理解Ruby on Rails框架的设计结构

栏    目:Ruby

下一篇:Ruby和Shell脚本实现判断成绩及格功能

本文标题:关于Ruby on Rails路由配置的一些建议

本文地址:http://www.codeinn.net/misctech/142426.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有