事件
has_many :squads, :dependent => :destroy
has_many :users, :through => :squads, :source => :squad_users
队
has_many :squad_users, :dependent => :destroy
has_many :users, :through => :squad_users
用户
has_many :squad_users
has_many :squads, :through => :squad_users
has_many :events, :through => :squads
SquadUser
belongs_to :squad
belongs_to :user
我在User模型中创建了一些named_scopes,如下所示:
named_scope :xtralarge, :conditions => [ "shirt = ?", "XL"]
named_scope :large, :conditions => [ "shirt = ?", "L"]
named_scope :medium, :conditions => [ "shirt = ?", "M"]
named_scope :small, :conditions => [ "shirt = ?", "S"]
named_scope :xtrasmall, :conditions => [ "shirt = ?", "XS"]
试过这个:
<%= @event.users.large.size %>
我得到了:
undefined method `large' for SquadUser(squad_id: integer, user_id: integer):Class
我理解...... SquadUser模型没有“大”属性。
我不明白的是如何达到我想要的......一个简单的方法来计算我需要为每个活动订购的每件衬衫的数量: - /
答案 0 :(得分:0)
您的建模关联从根本上说是不正确的。你试图通过一个has_many来做一个has_many。 Rails默认不支持。您可以安装此插件,然后您的关联可能会起作用。一个严肃的建议是简化您的数据模型。这两种情况都是在您对关联进行更改或安装插件后发布结果。
script / plugin install git://github.com/JackDanger/nested_has_many_through.git