名前空間について
名前空間とは
名前空間とは、モジュールです。
モジュールというのは、ざっくりいうと「部品」です。
ひとつのモデルのなかに、いくつかのクラスを設定できるのですが、例えば、学校でいうと、教室ですね。
管理系のモジュールとして 「Admin」を設定します。
そして「Admin」クラスに生徒がたくさんいるわけですね。
今回は、Admin専用のcontrollerを作ります。
controllerが生徒です。
具体的なパスとしては、
アプリ名/app/controllers/admin/users_controller.rb
です。
同じ名前のcontorollerが上位の階層にいますが、その子は年長クラスの同一同名の別人です。
このように、Railsではモジュール階層がディレクトリに対応していますから、分かりやすいですね。
名前空間を設定すると、一つのモデルの中で、幾つかのCRUD処理を行うことができますし、機能毎に実装追加ができますので、コードが複雑化しません。
名前空間を作ってみよう!
普通に、ディレクトリを作って、直下に手動でcontrollerを作っても良いです。
以下のコマンドでも作られますよ。
bin/rails generate controller Admin::Users
controllerの表記も少し変わります。
class Admin::UsersController < ApplicationController
end
ルートの設定をするときは、
Rails.application.routes.draw do
namespace :admin do
resources :users
end
end
resourcesを使うかどうかは、お好みだと思いますが、楽ですよ。
以下に、ターミナルのルーティングを載せます。
まずはターミナルで以下のコマンドを入力してください。
bin/rails routes
すると、
Prefix Verb URI Pattern
Controller#Action
admin_users GET /admin/users(.:format)
admin/users#index
POST /admin/users(.:format)
admin/users#create
new_admin_user GET /admin/users/new(.:format)
admin/users#new
edit_admin_user GET /admin/users/:id/edit(.:format)
admin/users#edit
admin_user GET /admin/users/:id(.:format)
admin/users#show
PATCH /admin/users/:id(.:format)
admin/users#update
PUT /admin/users/:id(.:format)
admin/users#update
DELETE /admin/users/:id(.:format)
admin/users#destroy
これだけのルーティングが瞬時に終わるので、resourcesは使った方がいいんじゃないかな、と思います。
ただし、どのようにしてパラメータの受け渡しなどが行われるのかは、絶対にわかっておいた方が良いと思います。
Author And Source
この問題について(名前空間について), 我々は、より多くの情報をここで見つけました https://qiita.com/tanakin_prog/items/04a0f0bc876883b21f8a著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .