基于自连接的Ruby-on-Rails路由

基于自连接的Ruby-on-Rails路由,ruby-on-rails,routing,Ruby On Rails,Routing,在我正在开发的一个应用程序中,我通过一个intersect表进行了自连接,如下所示 class User < ActiveRecord::Base has_many :clients, :through => :client_relationships, :conditions => "approved='1'", :source=>:user end class用户:客户关系,:条件=>“已批准=”1',:来源=>:用户 结束 它在某种意义上起作用,我可以说@c

在我正在开发的一个应用程序中,我通过一个intersect表进行了自连接,如下所示

class User < ActiveRecord::Base
  has_many :clients, :through => :client_relationships, :conditions => "approved='1'", :source=>:user
end
class用户:客户关系,:条件=>“已批准=”1',:来源=>:用户
结束
它在某种意义上起作用,我可以说@current_user.clients并获得所有客户。但是,我想设置一个URL/客户端,在那里我可以列出所有当前用户和客户端。有人知道我怎么做吗


我尝试在我的路由和客户端控制器中设置:clients资源,但由于没有客户端模型,它会抛出并出错。

应该没有错误

# routes.rb
map.resources :clients

# clients_controller.rb
class ClientsController < ApplicationController
  def index
    @clients = @current_user.clients
  end

  # other actions...
end  

# clients index.html.erb
<% @clients.each do |c| %>
  <p><%= c.name %></p>
<% end %>
#routes.rb
地图资源:客户端
#客户端\u controller.rb
类ClientsController

好的,我可以让它工作了。我使用CanCan进行基于角色的授权,并让方法在控制器顶部加载和授权资源,这必须假设每个控制器都有一个模型。我想到的一个奇怪行为是,在索引操作中,我可以访问当前用户,但不能访问@current\u user,即使在所有其他控制器中,我都可以访问@current\u user。你知道为什么吗?没关系,我想我知道了。其他控制器有一个before_过滤器,用于设置@current_用户变量。