gpt4 book ai didi

ruby-on-rails - Ruby on Rails 中链接对象的 Lambda 条件

转载 作者:太空宇宙 更新时间:2023-11-03 18:29:27 24 4
gpt4 key购买 nike

我正在尝试在发票类中编写一个命名范围。发票对象有一个到作业对象的链接。工作对象有一个指向公司对象的链接。

class Invoice < ActiveRecord::Base
belongs_to :job

class Job < ActiveRecord::Base
belongs_to :company

我希望范围基于与工作相关的公司 ID 是否与传入的值匹配。

我正在尝试这样的事情

named_scope :job_company, lambda{|job_company_id| {:conditions => {job.company.id => job_company_id}}}

这给我一个错误,说

undefined local variable or method `job' for #Class:0x103239160

我该如何为此编写 lambda 函数?

注意:我正在使用 Ruby 1.8.7 和 Rails 2.3.5

最佳答案

named_scope 基本上只是一个类方法,所以在 lambda 内部,self 的范围是 Invoice。没有作业实例或局部变量,因此出现错误。

但是,这应该有效:

named_scope :job_company, lambda{|job_company_id| { :joins => { :job => :company }, :conditions => ["jobs.company_id = ?", job_company_id] }}

关于ruby-on-rails - Ruby on Rails 中链接对象的 Lambda 条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6260323/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com