Patch #12499
Use lambda in model scopes
Status: | Closed | Start date: | ||
---|---|---|---|---|
Priority: | Normal | Due date: | ||
Assignee: | % Done: | 0% | ||
Category: | Plugin API | |||
Target version: | 2.3.0 |
Description
Yesterday I had to monkey-patch "Group" in a plugin, and it turned out to be really difficult because there's a scope defined in the Group class which doesn't use lambda. In this case, the scope is evaluated directly, which fails with "Could not find table users" for instance if you're in a "db:migrate" phase and your database is empty.
Hence I propose moving all scopes to their lambda form so that these difficulties disappear for plugin development.
One more thing, using scopes without lambda (or a call-able) will be deprecated in Rails 4 and probably removed in Rails 4.1 (see this commit).
Let me know what you think. If you're OK with this change I can take care of verifying all models, running tests and making the change everywhere...
Associated revisions
Use lambda form in model scopes (#12499)
use lambda form in Version model scope (#12499)
use lambda form in acts_as_tree scope (#12499)
History
#1
Updated by Jean-Baptiste Barth about 8 years ago
#2
Updated by Etienne Massip about 8 years ago
Looks ok to me, should be marked as a deprecated usage in RoR, too bad it is not?
#4
Updated by Jean-Baptiste Barth about 8 years ago
- Status changed from New to Resolved
Done in r10949. I left scopes in the same form they used before (some use Arel syntax, some use the rails 2 hash syntax) but I might dig into that later.
#5
Updated by Jean-Philippe Lang about 8 years ago
- Status changed from Resolved to Closed