使用理由
あるリソースがユーザーIDのような識別子なしにアクセスされる場合があります。
例えば、/profileアドレスで常に現在ログインしているユーザーのプロフィールを表示したい場合!
このような場合には、URLにID部分(/profile/:id)を含めずに、直接特定のアクションにマッピングしたいと思うかもしれません。
/profileというパスでアクセスしたときにusersコントローラーのshowアクションを呼び出すように設定するコード
get 'profile', to: 'users#show'
get 'profile', to: :show
resource :geocoder
HTTP動詞 | パス | コントローラー#アクション | 用途 |
---|---|---|---|
GET | /geocoder/new | geocoders#new | ジオコーダーを作成するためのHTMLフォームを返す |
POST | /geocoder | geocoders#create | 新しいジオコーダーを作成する |
GET | /geocoder | geocoders#show | 唯一のジオコーダーリソースを表示する |
GET | /geocoder/edit | geocoders#edit | ジオコーダーを編集するためのHTMLフォームを返す |
PATCH/PUT | /geocoder | geocoders#update | 唯一のジオコーダーリソースを更新する |
DELETE | /geocoder | geocoders#destroy | ジオコーダーリソースを削除する |
ヘルパー関数 | 返り値 | 説明 |
---|---|---|
new_geocoder_path | /geocoder/new | 新しいジオコーダーを作成するためのフォームページのパス |
edit_geocoder_path | /geocoder/edit | ジオコーダーを編集するためのフォームページのパス |
geocoder_path | /geocoder | 唯一のジオコーダーリソースを表示するページのパス |
辞が付きます。
namespace :admin do
resources :posts, :comments
end
このコードはAdmin::PostsControllerとAdmin::CommentsControllerに対するルートを自動的に生成します。
GET /admin/postsはadmin/posts#indexアクションを呼び出し、admin_posts_pathヘルパーを使用してアクセスできます。
GET /admin/posts/newは新しい投稿を作成するためのフォームページに移動し、new_admin_post_pathを通じてアクセスできます。
その他にもcreate, show, edit, update, destroyアクションに対するルートが設定されています。
scope '/admin' do
resources :posts, :comments
end
このように使用します。