首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >范围Lambda错误的参数数

范围Lambda错误的参数数
EN

Stack Overflow用户
提问于 2013-04-13 14:32:48
回答 1查看 1.2K关注 0票数 1

有人能看看我做错了什么吗?是Rails 3:

代码语言:javascript
复制
class Ad < ActiveRecord::Base
belongs_to :postingtemplate

    scope :active, (lambda do |ad| 
        Item.exists?(:postingtemplate => ad.postingtemplate_id)
    end)

end

它是Ad模型中的一个作用域,并且应该返回所有的广告,哪个项目存在于item.postingtemplate == ad.postingtemplate_id

更新

)将其分解为两个作用域,它起了作用:)

代码语言:javascript
复制
class Ad < ActiveRecord::Base
  belongs_to :postingtemplate
  scope :active, where(:postingtemplate_id => Postingtemplate.active)
end

class Postingtemplate < ActiveRecord::Base
  has_many :ads
  scope :active, where(:id => Item.all.collect{|x| x.postingtemplate}.uniq)
end

如果有人知道更好的方法-随便告诉我

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-04-13 14:58:47

你可以用join来做

代码语言:javascript
复制
scope :active, lambda { |ad| joins(:postingtemplate => :items).where(:postingtemplate => {:postingtemplate_id => ad.postingtemplate_id}) }

也许这也会奏效:

代码语言:javascript
复制
scope :active, lambda { |ad| joins(:postingtemplate => :items).where(:postingtemplate => ad.postingtemplate) }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15988893

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档