LoginSignup
0
1

More than 3 years have passed since last update.

railsのroutingメモ書き

Posted at

railsのroutingが今までやったことがない系統で戸惑ったのでその時のメモ書きです。

routingのパス指定

railsのroutingはroutes.rbというファイルに書きます。

具体的には

Rails.application.routes.draw do
  namespace :V1 do
    resources :service
  end
end

といった形で、構造とAPIのパスを一致させるように書きます。
resoucesにはコントローラーの名前をシンボル型で渡すことでcontrollerとパスを結びつけます。

今回の場合では パスは V1/service と結びつけられAPIが生成されます

特定のメソッドのみ適用する

ただ、上記の場合だとパスに GET,POST,DELETEなどrailsがデフォルトで存在するメソッドのものが全て生成されてしまいます。
GET,POSTのみ指定する場合は以下のように書きます。

Rails.application.routes.draw do
  namespace :V1 do
    resources :service, only:[:index]
  end
end

これでGETのみが生成され、contollerのindexメソッドのみが実際のAPIパスと結びつけられました。

パスに割り当てらるパラメーターの上書き

例えば以下の書き方だと

Rails.application.routes.draw do
  namespace :V1 do
    resources :service, only:[:destroy]
  end
end

DELETEメソッドのAPIが生成されて、
V1/service/:id
というパスと結びつけられました。

ただ、書き方にはよっては:idはしっくりこないケースがあるのでこれを書き換えたい場合はこう書きます。

Rails.application.routes.draw do
  namespace :V1 do
    resources :service, param: :user_id, only:[:destroy]
  end
end

これで、
V1/service/:user_id
になりました。

最後に

これらの他にも色々機能はありますが、今回これまで

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1