2013-04-15 35 views
7

嗨,大家好,我打算創建一個範圍,找出所有與0地址聯繫。當在rails中運行命令'Contact.noaddress'時Got error message ArgumentError: tried to create Proc object without a block c。範圍,但錯誤消息ArgumentError:試圖創建沒有塊的Proc對象

,這裏是我接觸模型包括範圍

class Contact < ActiveRecord::Base 
    attr_accessible :email, :firstname, :lastname, :mobilephone, :fullname 
    has_many :addresses 
    validates_presence_of :firstname, :lastname 


    scope :noaddressed, lambda do |addresses| 
    joins(:addresses).where('addresses.created_at.empty?', true) 
    end 
end 

和這裏的地址模型

class Address < ActiveRecord::Base 
    attr_accessible :city, :country, :postalcode, :region, :street 
    belongs_to :contact 
end 

可能有人幫助我嗎?非常感謝。

回答

15

這聽起來像(優先問題?)引用here

如果更改範圍:

scope :noaddresses, (lambda do 
    joins(:addresses).where('addresses.created_at is null') 
end) 

scope :noaddresses, lambda { joins(:addresses).where('addresses.created_at is null') } 

另外,我不明白,你正在使用的塊參數|addresses|。你忘記使用它了嗎?否則,您可以刪除它及其周圍的管道。

更新:我刪除了|addresses|參數,並將查詢更新爲有效的SQL語法。

+0

非常感謝您的幫助。但得到錯誤'ArgumentError:錯誤的參數數量(0爲1)',即使我使用了named_scope –

+0

地址參數需要在noaddresses(addresses_arguement)中提供或刪除。 – stringsn88keys

相關問題