我以此为例: https://github.com/toshimaru/Rails-4-Twitter-Clone
路径文件如下所示:
Rails.application.routes.draw do
root 'static_pages#home'
resources :users do
member do
get :following, :followers
end
end
resources :sessions, only: [:new, :create, :destroy]
resources :tweets, only: [:index, :create, :destroy]
resources :relationships, only: [:create, :destroy]
get 'signup' => 'users#new'
get 'signin' => 'sessions#new'
delete 'signout' => 'sessions#destroy'
get 'about' => 'static_pages#about'
match '*path' => 'application#routing_error', via: :all
end
似乎在某些控制器中有评论提及它使用的路由,但是它没有在路由文件中指定。例如:
# GET /users
def index
@users = User.all
end
# GET /users/1
def show
@tweet = current_user.tweets.build if signed_in?
@feed_items = @user.tweets.paginate(page: params[:page])
end
(在users_controller.rb
)
我的问题是,rails app如何知道这里有端点?我想知道我是否可以在一个文件中实际收集所有路由?
我打算做的是,我想用所有路由替换当前的routes.rb
文件。
答案 0 :(得分:2)
resources :users
已自动为您创建了所有RESTful路由,但您可以将其限制为仅限某些路由(例如,会话,推文和关系)。
您可以在项目的根目录中看到控制台中的所有路线rake routes
请参阅此处获取解释......
http://guides.rubyonrails.org/routing.html#listing-existing-routes
您可以在应用程序中访问rake routes
的输出....
output = `rake routes`
(注意上面使用反引号)
答案 1 :(得分:2)
在路线文件中指定
何时写下
resources :users
它为指定的资源创建CRUD路由,即索引,新建,创建,显示,编辑,更新,销毁资源的路由,在这种情况下,资源是user
。
您可以通过
rake routes | grep 'users'
并列出申请中的所有路线
rake routes