はじめに
Rails 勉強中の👶です。
理解を深めるために日々の学びを記事にしています。
初心者の記事なので言い回しや記載に誤りがあるかも知れませんが、暖かく見守っていただけると幸いです。
(よろしければ間違いをコメントいただけると学び、励みになります!)
学んだこと
・Railsにおける namespace, scope, module
namespaceを使用
route.rbの記載
routes.rb
Rails.application.routes.draw do
# 通常(比較用)
resources :user, only: [ :index ]
# namespace
namespace :admin do
resources :user, only: [ :index]
end
end
ルーティング確認
グループ化されるもの: Prefix、URI Pattern、Controller#Action(ファイル構造)
グループ化されないもの: -
user_index GET /user(.:format) user#index
admin_user_index GET /admin/user(.:format) admin/user#index
scopeを使用
route.rbの記載
routes.rb
Rails.application.routes.draw do
# 通常(比較用、併記するとエラーになります)
resources :user, only: [ :index ]
# scope
scope :admin do
resources :user, only: [ :index]
end
end
ルーティング確認
グループ化されるもの: URI Pattern
グループ化されないもの: Prefix、Controller#Action(ファイル構造)
user_index GET /user(.:format) user#index
user_index GET /admin/user(.:format) user#index
moduleを使用
routes.rb
Rails.application.routes.draw do
# 通常(比較用、併記するとエラーになります)
resources :user, only: [ :index ]
# module
scope :admin do
resources :user, only: [ :index]
end
end
ルーティング確認
グループ化されるもの: Controller#Action(ファイル構造)
グループ化されないもの: Prefix、URI Pattern
user_index GET /user(.:format) user#index
user_index GET /user(.:format) admin/user#index
ネスト構造のController・Viewを作る
namespaceなどで活用できます
$ rails g controller admin/users # namespace
結果
create app/controllers/admin/user_controller.rb
invoke erb
create app/views/admin/user
invoke test_unit
create test/controllers/admin/user_controller_test.rb
invoke helper
create app/helpers/admin/user_helper.rb
invoke test_unit
invoke assets
invoke scss
create app/assets/stylesheets/admin/user.scss
フォルダ構造 比較
$ rails g controller users # 通常
$ rails g controller admin/users # namespace