Rails使用嵌套资源路由根

时间:2010-09-26 19:17:01

标签: ruby-on-rails

我的routes.rb中有一个嵌套资源,如下所示:

map.resources :users, :only => [:index] do |user|
  user.resources :projects
end

它为我提供了/users/2/projects这样的网址,它会显示user拥有的所有项目.2。用户登录后,我希望这是根页面,使用{{1 }}。如何设置map.root来启用此功能?我正在使用设计,因此我可以使用map.root获取当前用户,但我不确定current_user中是否可以使用此设置。

3 个答案:

答案 0 :(得分:4)

我们正在使用一个HomepageController来解决这个问题,该主页会根据if current_user呈现两个不同的模板。

答案 1 :(得分:1)

您在RootController旁边的routes.rb控制器旁边设置了与现有嵌套路线一起的路线:

map.root :controller => :root

控制器RootController的{​​{1}}操作可以呈现index的{​​{1}}操作:

index

最后,ProjectsController将使用class RootController < ApplicationController def index render :controller => :projects, :action => :index end end 来呈现适当的项目列表:

ProjectsController

这掩盖了身份验证等细节。

答案 2 :(得分:0)

您可以在过滤器方法中进行身份验证后重定向到该页面:

redirect_to user_projects_path(logged_in_user)