代码之家  ›  专栏  ›  技术社区  ›  Daniel Abrahamsson

为什么不能保存带有piggy-back属性的记录?

  •  1
  • Daniel Abrahamsson  · 技术社区  · 16 年前

    我最近遇到一个问题,记录被标记为只读。查看文档我发现:

    为什么不呢?我的模型如下所示:

    class MailAccount
        belongs_to :account, :class_name => "UserAccount"
        named_scope :active, :joins => :account, 
          :conditions => "user_accounts.archived_at IS NULL"
    end
    

    我找不到为什么用这个命名范围加载的模型不能被保存的原因。有什么想法吗?

    2 回复  |  直到 16 年前
        1
  •  2
  •   Daniel Abrahamsson    16 年前

    结果我不得不加上 :select => "mail_accounts.*" 或者查询将存储 user_accounts 在 MailAccount

    class MailAccount
        belongs_to :account, :class_name => "UserAccount"
        named_scope :active, :joins => :account, 
          :conditions => "user_accounts.archived_at IS NULL",
          :select => "mail_accounts.*"
    end
    
        2
  •  1
  •   aceofspades    16 年前

    使用:join时,关联对象的ActiveRecord模型不会实例化。您应该改用:include。