0
爲什麼不能正常工作?在循環中設置ActiveRecord示波器
class Foo
...
Status.each do |status|
scope status, where(status: status)
end
...
end
現在Foo.new
返回不富的一個實例,但一個ActiveRecord ::關係。
爲什麼不能正常工作?在循環中設置ActiveRecord示波器
class Foo
...
Status.each do |status|
scope status, where(status: status)
end
...
end
現在Foo.new
返回不富的一個實例,但一個ActiveRecord ::關係。
紅寶石1.9
Status.each do |status|
scope status, -> { where(status: status) }
end
或以前版本的Ruby
試試這個Status.each do |status|
scope status, lambda { where(status: status) }
end
- 編輯 -
我猜你的問題是在其他地方,因爲這個代碼工作對我來說:
class Agency < ActiveRecord::Base
attr_accessible :logo, :name
validate :name, presence: true, uniqueness: true
NAMES = %w(john matt david)
NAMES.each do |name|
scope name, -> { where(name: name) }
end
end
我可以創建新模型就好,並使用示波器
irb(main):003:0> Agency.new
=> #<Agency id: nil, name: nil, logo: nil, created_at: nil, updated_at: nil>
irb(main):004:0> Agency.matt
Agency Load (0.5ms) SELECT "agencies".* FROM "agencies" WHERE "agencies"."name" = 'matt'
=> []
irb(main):005:0> Agency.john
Agency Load (0.3ms) SELECT "agencies".* FROM "agencies" WHERE "agencies"."name" = 'john'
=> []
irb(main):006:0> Agency.david
Agency Load (0.3ms) SELECT "agencies".* FROM "agencies" WHERE "agencies"."name" = 'david'
=> []
我試過了。同樣的結果。順便說一句,我應該提到我在Ruby 2.0上。 –
我已更新我的答案! –
感謝您花時間嘗試複製並強制我更深入地觀察。巨大的呃。 **其中一個狀態是「新」。**是的。順便說一句,使用lambda或不是無關緊要。 –