Ray*_*ice 10 scope ruby-on-rails-3
大家好我想创建一个范围,找出所有0地址的联系人.Got error message ArgumentError: tried to create Proc object without a block在rails c中运行命令'Contact.noaddress'时.
这是我的联系模式,包括范围
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
Run Code Online (Sandbox Code Playgroud)
这是地址模型
class Address < ActiveRecord::Base
attr_accessible :city, :country, :postalcode, :region, :street
belongs_to :contact
end
Run Code Online (Sandbox Code Playgroud)
有人可以帮帮我吗?非常感谢.
str*_*eys 19
这听起来像是(优先问题?)在这里引用.
如果您将范围更改为:
scope :noaddresses, (lambda do
joins(:addresses).where('addresses.created_at is null')
end)
Run Code Online (Sandbox Code Playgroud)
要么
scope :noaddresses, lambda { joins(:addresses).where('addresses.created_at is null') }
Run Code Online (Sandbox Code Playgroud)
另外,我没有看到你在哪里使用块参数|addresses|.你忘了用它吗?否则,您可以将其及其周围的管道移除.
更新:我删除了|addresses|参数并将查询更新为有效的SQL语法.
| 归档时间: |
|
| 查看次数: |
6876 次 |
| 最近记录: |