0

这是我的“动态”范围:

  def all_games(conditions = {})
    scope = games.includes(:stats).scoped {}
    scope = scope.where sport_position_id: conditions[:sport_position_id] unless conditions[:sport_position_id].nil?
    scope = scope.where sport_id: conditions[:sport_id] unless conditions[:sport_id].nil?
    scope = scope.where team: conditions[:team]
    scope.order(:date)
  end

User上面的方法在我的模型中包含的一个模块中。

因此,您可以在代码中访问它,如下所示:

u = User.find(1)
u.all_games(sport_position_id: params[:sport_position_id], sport_id: current_sport.id, team: params[:team])

anonymous scopes在 Google 搜索动态范围时,我在( http://railscasts.com/episodes/112-anonymous-scopes )上遇到了 Ryan Bate 的 RailsCast 。我在使用 Rails 3 后对其进行了修改,但想知道在编写动态范围时我是否走在正确的道路上?

由于我正在编写的一些复杂 API 的性质,我发现自己有时会编写动态范围。

4

0 回答 0