Ruby on Rails Additional RESTful actions


Example

resources :photos do
  member do
    get 'preview'
  end
  collection do
    get 'dashboard'
  end
end

This creates the following routes in addition to default 7 RESTful routes:

get       '/photos/:id/preview',          to: 'photos#preview'
get       '/photos/dashboards',           to: 'photos#dashboard'

If you want to do this for single lines, you can use:

resources :photos do
  get 'preview',   on: :member
  get 'dashboard', on: :collection
end

You can also add an action to the /new path:

resources :photos do
  get 'preview', on: :new
end

Which will create:

get       '/photos/new/preview',          to: 'photos#preview'

Be mindful when adding actions to your RESTful routes, probably you are missing another resource!