/kullanıcı adı'un bu kullanıcı adının profiline yönlendirildiği bir proje yapmaya çalışıyorum. Bunu nasıl yapabilirim?Kullanıcı Adı Rails'de Yönlendirme
4
A
cevap
5
rota olacaktır: "get /:username", to: "users#profile"
Sen denetleyicisi eylem denir ne olursa olsun hiç users#profile
değişirdi.
Bu numaralı telefonu rotalarınızın sonundaki sonuna koyduğunuzdan emin olmanız gerekir. Aksi takdirde, numaralı rotanızdaki tüm rotaları arayacaktır. Örneğin
aşağıdakileri yapmayın:get "/:username", to: "users#profile"
get "/foo", to: "pages#bar"
Eğer pages#bar
noktasına ulaşmak için muktedir asla çünkü.
4
Önceki yanıtla ilgili sorun, rotalarda eşleşmeyen herhangi bir şeyin users#profile
'a yönlendirilmesidir.
Alternatif ve bu sorunu çözmek için, aşağıdaki gibi, dinamik bir yönlendirici oluşturabilirsiniz:
class DynamicRouter
def self.load
Rails.application.routes.draw do
User.all.each do |user|
puts "Routing #{user.name}"
get "/#{user.name}", :to => "users#profile", defaults: { id: user.id }
end
end
end
def self.reload
Rails.application.routes_reloader.reload!
end
end
Sonra UsersController tarih:
class UsersController < ApplicationController
def profile
@user = User.find(params[:id])
redirect_to not_found_path unless @user
end
end
Ve aslında sunucu başlangıcında güzergahların oluşturulması için : bir kullanıcı eklendi/güncellendiğinde Nihayet
Rails.application.routes.draw do
...
get 'not_found' => 'somecontroller#not_found', as: :not_found
DynamicRouter.load
end
yolları yeniden:
class User < ActiveRecord::Base
...
after_save :reload_routes
def reload_routes
DynamicRouter.reload
end
end
Umut eder!
İlgili konular
- 1. yönlendirme kullanıcı değilse
- 2. kullanıcı eylemine dayalı açısal yönlendirme
- 3. algılama kullanıcı adı
- 4. Denetleyici için kullanıcı adı kullanıcı adında mı?
- 5. Kullanıcı için kullanıcı adı ve SID, ldap
- 6. Maskeleme Breaking ile Alan Adı Yönlendirme
- 7. Sorgu dizesi parametre adı temelinde yönlendirme
- 8. Kullanıcı adı verilen makineyi sıfırla
- 9. Maven özelliği mevcut kullanıcı adı?
- 10. .NET yanlış kullanıcı adı döndürüyor
- 11. Geç Kullanıcı Adı Git Komutu
- 12. WCF kullanıcı adı sertifikası yok
- 13. Kullanıcı içeriyorsa, yeniden yönlendirme sayfası AngularJS
- 14. Kullanıcı giriş yaptıktan sonra yeniden yönlendirme
- 15. PHP ile WordPress veritabanı adı/kullanıcı adı/şifre almak
- 16. SQL Server: Geçerli kullanıcı adı olmadan geçerli kullanıcı alın
- 17. sqlstate [HY000] [1045] Erişim kullanıcı 'kullanıcı adı' için reddedildi @ CakePHP'yi
- 18. capistrano Birden çok kullanıcı için bir kullanıcı adı
- 19. Giriş yaptıktan sonra kullanıcı girişi kullanıcı adı? (PHP/JavaScript/HTML)
- 20. Asp.net Core'da kullanıcı Tarayıcı adı (kullanıcı aracı) nasıl edinilir?
- 21. Meteor kullanıcı koleksiyonunda bir kullanıcı adı bulunduysa kontrol edin
- 22. git: osxkeychain kimlik bilgisi yardımcısı, kullanıcı adı/parolayı hatırlamakta başarısız olursa kullanıcı adı/parola
- 23. GUID Kullanıcı adı olarak DNN kullanıcısı oluştururken kullanıcı adı olarak girme
- 24. Jenkins github kullanıcı adı şifre girişi
- 25. Kullanıcı adı ve şifrenizle taklit etme?
- 26. Rayları oluşturmak için kullanıcı adı ekleme 4
- 27. Titanyum'da UserID kullanıcı adı nasıl saklanır
- 28. Geçerli kullanıcı adı bir hücrede nasıl gösterilir?
- 29. Kullanıcı adı gönderildiğinde yeni kullanıcılar oluşturulamıyor
- 30. Linux'ta C/C++ kullanıcı adı nasıl edinilir?
[Başlamak için iyi bir yer] (http://edgeguides.rubyonrails.org/routing.html) – javanut13