Electric Rails: Forbidden column names (base)

nzook's picture

Rails has *ahem* a lot of methods available to ActiveRecord::Base descendant class objects, and we are warned not to use these as column names. It doesn't take much to figure out that this also applies to dynamic method names, including those from the dirty module, and association-derived names.

For instance, don't name columns col1, col2, and find_by_col1_and_col2. Don't have columns named col1 and col1_was. Don't have an association named tower and a column named build_tower.

But there are other limits as well. If you look at ActiveRecord::Validations, ActiveResource::Validations and ActiveModel::DeprecatedErrorMethods, you will see that "base" is being used exactly the same way that attribute names are.

I expect that this will lead to problems.

Anyone know of others?