We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
In the process of converting a project from using symbolize/mongoid to mongoid-enum, I had a model that declares the following enum:
symbolize/mongoid
mongoid-enum
# old symbolize/mongoid declaration # symbolize :status, in: [:new, :success, :fail], default: :new # new mongoid-enum declaration enum :status, [:new, :success, :fail]
The enum declaration creates scope methods for the enum values:
MyModel.new # => Mongoid::Criteria MyModel.success # => Mongoid::Criteria MyModel.fail # => Mongoid::Criteria
So now mongoid-enum has overridden the new method, which blows up calls to MyModel.create or MyModel.create!.
new
MyModel.create
MyModel.create!
There are a couple of ways this can be fixed (ideally, both could be implemented).
Add a new option to disable scopes for an enum:
enum :status, [:new, :success, :fail], :scopes => false
Add a scope method prefix configuration option to avoid namespace collisions (e.g., scope_ or s_ for brevity):
scope_
s_
module Mongoid module Enum class Configuration attr_accessor :field_name_prefix attr_accessor :scope_method_prefix def initialize self.field_name_prefix = "_" self.scope_method_prefix = "s_" end end def self.configuration @configuration ||= Configuration.new end def self.configure yield(configuration) if block_given? end end end
The text was updated successfully, but these errors were encountered:
No branches or pull requests
In the process of converting a project from using
symbolize/mongoid
tomongoid-enum
, I had a model that declares the following enum:The enum declaration creates scope methods for the enum values:
So now mongoid-enum has overridden the
new
method, which blows up calls toMyModel.create
orMyModel.create!
.There are a couple of ways this can be fixed (ideally, both could be implemented).
Add a new option to disable scopes for an enum:
Add a scope method prefix configuration option to avoid namespace collisions (e.g.,
scope_
ors_
for brevity):The text was updated successfully, but these errors were encountered: