Rails: лучшее понимание динамических областей
Это моя "динамическая" сфера:
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])
При поиске в Google динамических областей я наткнулся на RailsCast Райана Бэйта на anonymous scopes
( http://railscasts.com/episodes/112-anonymous-scopes). Я изменил его, так как использую Rails 3, но мне было интересно, был ли я на правильном пути, когда речь шла о написании динамических областей?
Я иногда пишу динамические области из-за природы некоторых сложных API, которые я пишу.