0

当用户 ABC 点击“搜索”链接时,我希望 ABC 只看到与 ABC 居住在同一城市的成员。现在我在用户控制器的索引操作中有以下代码,它显示了在网站上注册的所有成员。我也在使用will_paginategem 进行分页。

  def index
    @users = User.paginate :page => params[:page], :per_page => 10
  end

在视图中,我正在遍历@users数组以显示所有用户。

但是,我希望 ABC 只看到来自他/她所在城市的成员。一旦 ABC 只能看到来自他/她所在城市的成员,我将实施过滤器以进一步缩小结果范围。但这是后一步。此外,ABC 不应仅通过在地址栏中输入用户名来查看来自其他城市的用户的个人资料。我该怎么做呢?

4

1 回答 1

5

您可以使用 ActiveRecord 范围(Ruby on Rails Guides / ActiveRecord Query Interface)

然后在您的用户模型中,您将拥有如下内容:

scope :living_in_the_same_city_with, lambda { |user| /* your where condition where(:city_id => user.city_id) */ }

和内部控制器:

@users = User.living_in_the_same_city_with(current_user).paginate :page => params[:page], :per_page => 10
于 2013-03-16T06:57:03.027 回答