Rails rotalar hakkında

Öncelikle herkese iyi forumlar.
Rails ile bir proje geliştiriyorum ve bu projede admin panel altında bazı özellikler oluşturmam gerekiyor(blog tipi yazı ekleme vs). Bu özellikleri oluşturmak için routes.rb dosyasında /panel path’i altında bazı rotalar tanımladım fakat tam olarak istediğim gibi olmadı. Kod şu şekilde:

Rails.application.routes.draw do
    get "/login",to: "sessions#new",as: :login
    post "/login",to: "sessions#create",as: :login_post
    delete "/logout",to: "sessions#destroy",as: :logout

    # resource :login,controller: "sessions",except: %i[ index show edit update]

    # TODO login pathleri resources ile yazılacak

    # get "/panel",to: "panel#index",as: :panel


    get "/hakkimda",to: "main#hakkimda",as: :hakkimda
    get "/projelerim",to: "main#projelerim",as: :projelerim
    get "/yazilarim",to: "main#yazilarim",as: :yazilarim
    get "/iletisim",to: "main#iletisim",as: :iletisim


    get "/hakkimda/edit",to: "aboutme#edit",as: :edit_aboutme
    # put "/hakkimda",to: "panel#hakkimda_update",as: :update_aboutme

    namespace :panel do
        resources :aboutme,except: %i[ index new create delete ],path: "hakkimda"
    end

    root "main#index"
end

Burada isteğim şey aboutme rotasının /panel/hakkimda şeklinde gözükmesi ve edit_panel_aboutme_path yerine edit_aboutme_path şeklinde gözükmesi. Ayrıca dosyaların bulunuğu yolu aboutme#edit ile değiştirmem gerekiyor yardımcı olur musunuz.
Şimdiden teşekkürler.

namespace kullanmak yerine path de panel’i belirtebilirsin.

path: "panel/hakkimda"

bu şekilde.

1 Like
namespace :panel do
  resource :aboutme, only: %i[show edit update], path: "hakkimda"
end

Bu sekilde yapinca rotalar nasil gozukuyor?

EDIT: expect yerine only daha kisa ve okunakli gibi bu durumda.

1 Like

panel namespace’inin kullanilma nedeni ileride daha fazla route eklemek olabilir.

1 Like

@WormerKing bir de nacizane tavsiyem kodda Ingilizce ve Turkce’yi pek karistirmadan yazman, ornegin controller, model, method vs isimleri Ingilizce, ama routes.rb dosyasindaki path’ler(URL’ler) Turkce tanimlanabilir. Ornegin URL /hakkimda olabilir ama controller’i about_me_controller.rb, rota helper methodu da about_me_path olabilir.

2 Likes
namespace :panel, as: nil do
  resource :aboutme, except: %i[show edit update], path: "hakkimda"
end

bu şekilde bir şey tercih edebilir o zaman. Çok hoş olmadı gibi ama.

scope ile denedim ama tam kullanmalı mıyım karar veremedim. Sizin önerdiğiniz çözümlerde işe yaradı.

Teşekkürler :slightly_smiling_face:

Evet, daha düzenli olması için namespace kullanmak istemiştim.