Объедините область действия с current_user - PullRequest
2 голосов
/ 30 января 2011

У меня есть область видимости, подобная этой:

class InventoryItem < ActiveRecord::Base
  belongs_to :inventory
  belongs_to :game_item

  # define custom scopes to get equipped inventory items for user
  scope :equipped, where(:is_equipped => 1)

  scope :item, lambda { |item_type|
    joins(:game_item).
    includes(:game_item).
    where("game_items.item_type = ?", item_type ).
    limit(1)
  }

Могу ли я получить модель current_user, которая также включает экипированные предметы в одну команду?(может быть, включает в себя?)

1 Ответ

0 голосов
/ 31 января 2011

Предполагая, что ваш инвентарь принадлежит пользователю, вы можете включить модель current_user, используя это:

scope :equipped, where(:is_equipped => 1).includes(:inventory => :user)

Это говорит Rails включить модель инвентаря и связанную модель пользователя для этого инвентаря.Если вы хотите сделать то же самое для предмета, вы можете сделать это:

scope :item, lambda { |item_type|
  includes(:game_item).
  includes(:inventory => :user).
  where("game_items.item_type = ?", item_type ).
  limit(1) }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...