samedi 25 avril 2015

Rails is there a way to collect all routes


I am using this as an example: http://ift.tt/1mgtD7V

The route file looks like:

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

It appears that in some controllers there are comments mentioning which route it uses, however it's not specified in the route file. For instance:

 # 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

(in users_controller.rb)

My question is, how does rails app know that there is an endpoint here? I would like to know whether I can actually collect all the routes in one file?


Aucun commentaire:

Enregistrer un commentaire