#ルータが作るURLは何者?
クライアントとサーバー間でデータ受け渡すために指定された道のり
#具体的に
$ rails g model Users name:string
$ rails db:migrate
$rails g controller Post index create
説明のために、UsersテーブルとPostコントローラを作りました
def index
user = User.all
end
def create
user = User.new
user.save
end
とりあえず、Postsコントローラに簡単な処理を書きました。
超簡単に説明すると、
indexアクションでは、
UserテーブルのDBから、Userテーブルのデータをクライアントに返す処理
createアクションでは、
クライアントから受け取ったデータを、DBのUserテーブルに保存する処理
が書かれています
###ルートを作る
ようやくルートを作ります
get '/posts', to: 'posts#index'
post '/posts', to: 'posts#create'
indexアクションとcreateアクションに対応したルーティングを定義してるんです。
すると、下の写真のようなルートが生成されています。
GETはクライアントがサーバからデータを取得するためのHTTPメソッド
POSTはクライアントがサーバにデータを送るためのHTTPメソッド
つまり、
get '/posts', to: 'posts#index'
によってできた道のりlocalhost:3000/Postsを通って、
Postsコントトーラのindexアクションの処理により、DBのUserテーブルからデータ取得する
post '/posts', to: 'posts#create'
によってできたlocalhost:3000/Postsを通って、
Postsコントトーラのcreateアクションの処理により、DBのUserテーブルにデータを保存する。
ということになります!
#追記
resources :posts, only: [:index, :create]
先程のルートはこのようにresourcesを使って省略することもできます。