美文网首页
Routes 路由

Routes 路由

作者: 小潘不怕冷 | 来源:发表于2017-07-07 15:48 被阅读0次

    Rails路由种类 (一般路由,命名路由)

    使用 :except排除某个路由
    resource :posts, :except => :show

    可以添加额外一般路由 :to (不同的请求方法有区分 get,post)
    get 'posts/:id', :to => 'post#show'
    post 'posts/:id', :to => 'post#show'

    命名路由: 添加 :as => XXXXX
    get 'posts/:id', :to => 'post#show' :as => 'post_show' #这样生成的路由会自动生成路由路径名称 ex. post_show_path

    view界面内可以直接使用rails方法创建一个超链接
    <%= link_to 'id为1的微博', {:controller => 'posts', :action => 'show', :id => 1} %> #这个方法为一般路由添加方法
    <%= link_to 'id为1的微博',show_post_path(1) %> #这个方法为命名路由添加方法

    Rails.application.routes.draw do
    
      resources :posts do
        # get 'recent', :on => :collection
        collection do  #集合路由
            get 'recent'
            get 'today'
        end
        # member do  #成员路由
        #   get 'recent'
        # end
      end
    
    
      root 'posts#index'
      # For details on the DSL available within this file, see http://guides.rubyonrails.org/routing.html
    end
    

    资源路由 (rails中最常用的路由方式)

    资源路由可渲染和不渲染视图

    资源路由创建:

    • 在controller里面需要创建相应的方法
    def recent
      #具体函数写法按需求
    end
    
    • 创建视图文件 recent.html.erb (需要创建时, 视图文件根据具体需求构建)
    视图文件
    • 在routes文件中添加路由 (扩展资源路由添加)
      • 集合路由添加方式 (两种写法)
        生成的路由信息 posts/recent

    resources :posts do
    get 'recent', :on => :collection
    end

    resources :posts do
    collection do #集合路由 需要添加多个时 采用这种写法
    get 'recent'
    get 'today'
    end
    end

     - 成员路由添加 (生成的路由信息会附加路由的id  ex. posts/:id/recent )
    

    resources :posts do
    collection do #集合路由
    get 'recent'
    get 'today'
    end
    member do #成员路由
    get 'recent'
    end
    end

    
    总结:rails中资源路由是最常用的路由方式,可以使用集合路由或者成员路由为其添加路由方法
    
    
    
    
    

    相关文章

      网友评论

          本文标题:Routes 路由

          本文链接:https://www.haomeiwen.com/subject/tlzlhxtx.html