1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Rails × 管理画面】namespaceで管理者用施術メニュー管理機能を実装してみた話

Posted at

こんにちは、miyoshiです。
モニター開発も順調に進んでおります。
今回は、ISSUE4 のところで、実装できた部分と、取り入れてみたことを
ご紹介していきます。

この記事も、前回公開した記事の続編です。

今回実装したこと(ISSUE#4)

  • メニューモデル作成
  • 期間限定対応カラム追加
  • 管理者用CRUD画面作成
  • 期間外非表示処理実装

この記事では、Railsのnamespaceを活用して管理画面を構築する方法を、実体験ベースでわかりやすく解説します。

🎯 この機能を実装した目的

  • 管理者がメニュー内容を柔軟に変更できるようにする
  • 将来的にユーザーが予約時に施術メニューを選べるよう連携させる

🧠 namespace活用の背景とメリット

以前オリジナルアプリを作っていたとき、すべての処理を1つのコントローラに詰め込んでしまい、管理画面用の処理やビューが混在してしまいました。

その結果:

  • 役割の違うロジックが混ざってバグが増えた
  • 管理画面専用のデザインや認証制御がしづらい
  • メンテナンス時に「あれ?このコードどっちの画面だっけ…?」と混乱

その反省を活かし、今回はRailsのnamespaceを使って、「管理者用の機能を完全に分離」する方針で設計しました。

🔍 namespace とは?

Railsの namespace は、ルーティング・コントローラ・ビューを機能ごとに整理・分離できる仕組みです。

# config/routes.rb
namespace :admin do
  resources :menus
end

このように書くことで、以下のように構造が明確になります:

  • コントローラーAdmin::MenusController
  • ビュー:app/views/admin/menus

→ 「admin」という名前空間で、管理用の機能を一括で管理できるようになります。

✅ Railsにおけるnamespaceで整理して感じたメリット

📁 ディレクトリ・クラス構成がわかりやすくなる

たとえば、管理者専用の画面と通常ユーザーの画面を分けたいとき

app/controllers/admin/menus_controller.rb
app/views/admin/menus/index.html.erb

このようにファイルが分類されることで、
「この機能は管理者用だな」 とすぐにわかるようになります。

📝 まとめ

Railsで実装していて、、、

「将来、機能拡張しそうだな」
「この機能、管理者専用にしたいな」

と思ったら、namespaceで整理するタイミングだと感じました!!

namespaceを使って構造的に分けるのは必須レベルだと感じました。

最後に

実装してみて、以前の混沌としたコードと比べて圧倒的にエラーが少ない開発体験になりました。

僕も今回のことでRailsの仕組みを少し理解できた気がします。

同じように困っている初心者の方の助けになれば幸いです。
質問や感想もぜひコメントくださいね!😊

1
0
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
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?