how to set up and use a Rails routes prefix

You can also use route scopes for it. In your routes.rb file:

Rails.application.routes.draw do

  # Any other routes here
  scope 'admin' do
    resources :articles
  end
end

/admin/articles and all the other CRUD related routes will work with link_to, form submit controls, etc.


Paths

I'm not sure why it's called prefix - it should be called path helper:

enter image description here

The bottom line is when you call helpers like link_to or form_tag etc - they will require paths to populate different actions in your app's routing structure.

As Rails favours convention over configuration & DRY programming, meaning if you can reference these path helpers over using standard urls, it will allow you to make one reference & chance the route as required

EG

Calling articles_path is far more powerful than referencing /articles every time


Routes

To answer your question properly, you will need to appreciate Rails uses resourceful routing - basically meaning that every route helper you create should be defined around any resource in your application

Due to the MVC structure of Rails, these resources will typically be defined by the controllers you use:

#config/routes.rb
resources :articles #-> articles_path etc

You should always reference your resources as they are (in your case articles).

To customize the path helper, you'll need to change the reference in the routes file, like this:

#config/routes.rb
resources :articles, as: :document, path: "document" #-> domain.com/documents

This allows you to define custom routes / path helpers, allowing you to call those as you wish


It let's you use shortcuts such as new_article_path or new_article_url in your controllers and views. These come in very handy when doing things like redirecting users to a specific page or generating dynamic links.

You can change the prefix by adding the as: option in your routes.rb file. For example:

GET '/new', to: 'articles#new', as: 'my_new_article`

This would change the prefix to my_new_article.