我有一个Users表,它还有一个管理员ID来实现自我加入。当我作为经理登录并点击"我的下属"时,我应该看到我的下属。下属也来自User表。 所以我的问题是
答案 0 :(得分:0)
我建议namspacing thisObj
。
所以它会在文件夹users_controller.rb
app/controllers/manager/users_controller.rb
在class UsersController < ApplicationController
before_action :ensure_manager!
def index
@manager.users
end
end
中你会有这条路线:
routes.rb
所以最终你的路径是namespace :manager do
resources :users
end
答案 1 :(得分:0)
我会像@ryanfelton那样做,但不是覆盖索引方法,而是专门为下属创建一个新方法。
class Manager::UsersController < ApplicationController
before_action :ensure_manager! #this one check the manager_id or any other condition to be manager
def sobordinates
@subordinates = @user.subordinates
end
end
#routes.rb
namespace :manager do
resources :users do
collection do
get :subordinates
end
end
end
通过这种方式,您可以维护用户的索引,并且只有下属使用方法。
请注意,您需要在users文件夹&gt;中创建subordinates.html.erb。
app/views/manager/users/subordinates.html.erb
编辑: 你在那里要求模型和链接也是如此,在这里:
链接:编辑routes.rb后,转到控制台并使用rake routes
并搜索下属链接。添加_path或_url,具体取决于您对该路径的使用情况。
该模型,我强烈建议您阅读有关关系的官方文档:http://guides.rubyonrails.org/association_basics.html。这比复制和粘贴的答案更有帮助:)