Routes 路由
2017-07-07 本文已影响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中资源路由是最常用的路由方式,可以使用集合路由或者成员路由为其添加路由方法