将Scope与current_user结合使用

时间:2011-01-29 23:07:17

标签: ruby-on-rails

我的范围是这样的:

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 :(得分:0)

假设您的广告资源属于某个用户,您可以使用以下内容包含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) }