Skip to content
New issue

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

stack overflow when accidentally using Enum without .to_i in where #451

Open
confact opened this issue May 28, 2021 · 1 comment
Open

stack overflow when accidentally using Enum without .to_i in where #451

confact opened this issue May 28, 2021 · 1 comment

Comments

@confact
Copy link

confact commented May 28, 2021

When doing normal where and use the Enum in the where as you might assume it should work. It throws a stack overflow.
if I do .to_i it works.

I would assume to catch this error with an exception so a stack overflow doesn't happen if it is not supported.

User.where(role: Role::Admin).select.first

will return stack overflow, while:

User.where(role: Role::Admin.to_i).select.first

will work

I use the Enum converter in the model like this:

  column role : Role = Role::Guest, converter: Granite::Converters::Enum(Role, Int32)
@crimson-knight
Copy link
Member

I bet this is because it's not casting the Enum when it's in the where method params, but it is converted in the model itself when saving/fetching.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants