2010-09-26 22 views
5

routes.rb'mde yuvalanmış bir kaynağım var:Yuvalanmış kaynak ile rotaları yönlendirir

, /users/2/projects gibi URL'leri veren, user tarafından sahip olunan tüm projeleri gösterecektir. 2. Bir kullanıcı oturum açtıktan sonra, bunun olmasını isterim. map.root kullanarak kök sayfası. Bunu etkinleştirmek için map.root'ü nasıl ayarlayabilirim? Ben devise kullanıyorum, bu yüzden şimdiki kullanıcıyı current_user ile elde edebilirim, fakat routes.rb'da olduğundan emin değilim.

+0

Ne yönlendiricisi olmak kök sayfası ayarlama hakkında? Ve sonra Site: home 'gibi olmak, kullanıcıyı bu sayfaya yönlendiriyor mu? Böylece misafirler etkilenmeyecek. –

+0

@webdestroya - Bu işe yarayabilir. Ancak misafirler için endişelenmenize gerek yok; Bu özel bir site, giriş yapmamış olan herkes giriş sayfasına yönlendiriliyor. – Skilldrick

cevap

4

Bunu, if current_user tabanlı iki farklı şablon oluşturan bir HomepageController ile çözüyoruz.

+0

Bunun için teşekkürler. Bunun gibi şeylerle başa çıkmak için route.rb'yi bekliyordum, ama sanırım o türden bir mantığı oradan uzak tutmak mantıklı. Sıralama! – Skilldrick

1

Var olan iç içe rota yanında routes.rb bir RootController kontrolöre rotanızı kurmak istiyorum:

map.root :controller => :root 

kontrolör RootController 'ın index eylem ardından ProjectsController ait index eylemi hale getirebilir:

class RootController < ApplicationController 
    def index 
    render :controller => :projects, :action => :index 
    end 
end 

Son olarak, ProjectsController, uygun proje listesini oluşturmak için current_user'dan yararlanır:

class ProjectsController < ApplicationController 
    def index 
    @projects = Project.all.find_by_user(current_user) 
    end 
end 

Bu kimlik doğrulama vb ayrıntıları GlossES

0

Sen filtre yönteminde doğrulama sonra bu sayfaya yönlendirme olabilir:

redirect_to user_projects_path(logged_in_user) 
İlgili konular