Skip to content

GOTCHA - Cannot use the field name 'display' in ActiveHash as Rails adds it to Object class #184

@hunterae

Description

@hunterae

I was attempting to use a field with name "display"; example:

class TestHash < ActiveHash::Base
  field :display, default: true
  add
  add display: false
end

However, ActiveHash defines method only if an existing instance method does not already exist, and Rails adds this method to either Object or Kernel. Ex:

TestHash.first.display
#<TestHash:0x00007f870c24a780> => nil
TestHash.last.display
#<TestHash:0x00007f870c249f38> => nil

While I totally understand the rationale here, I think it would be really helpful if you could spit out a warning or error if we attempt to define a method that is already defined. The result of the above issue was that most of my test suite failed and I had countless lines outputting the class information for individual ActiveHash records.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions